您的位置:首页 > 其它

2016324

2016-03-24 15:30 197 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/WB_123456/article/details/50972152 1.    线程安全问题也就是多个线程同时访问一个资源的时候,会导致程序运行的结果并不是想看到的结果。也就是临界资源的问题。


2.   如何解决线程安全问题?
    就是在访问临界资源的代码前面加一个锁,当访问完临界资源后释放锁,让其他线程继续访问。


3.  在java中,提供了两种方式来实现同步互斥访问:synchronized和lock


4. synchronized同步方法或者同步块
  在java中,每个对象都拥有一个锁标记(monitor),也称为监视器,多线程同时访问某个对象时,线程只有获取了该对象的锁才能访问。


5.另外,每个类也会有一个锁,它可以用来控制对static数据成员的并发访问。


6.如果一个线程执行一个对象的非static synchronized方法,另外一个线程需要执行这个对象所属类的static synchronized方法,此时不会发生互斥现象,因为访问static synchronized方法占用的是类锁,而访问非static synchronized方法占用的是对象锁,所以不存在互斥现象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: