码迷,mamicode.com
首页 > 编程语言 > 详细

线程安全问题出现 的根本原因和解决方案

时间:2018-11-21 16:13:29      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:解决方案   sleep   列表   sync   解决   代码   注意   wait   代码块   

线程安全问题出现的根本原因:
    1. 必须要存在两个或者两个以上的线程共享着一个资源。
    2. 操作共享资源的代码必须有两句或者两句以上。



    1. 同步代码块
        synchronized(锁){
            需要被同步的代码
        }
              
    2. 同步函数。  
        修饰符 synchronized 返回值类型   函数名(形参列表..){

        }
    注意:
        1. 同步代码块的锁可以是任意的对象。 同步函数的锁是固定 的,非静态函数的锁对象是this对象。 静态函数的锁对象是class对象。
        2. 锁对象必须是多线程共享的对象,否则锁不住。
        3. 在同步代码块或者是同步函数中调用sleep方法是不会释放锁对象的,如果是调用了wait方法是会释放锁对象的。




线程安全问题出现 的根本原因和解决方案

标签:解决方案   sleep   列表   sync   解决   代码   注意   wait   代码块   

原文地址:https://www.cnblogs.com/loaderman/p/9994203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!