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

多线程操作(锁)

时间:2017-11-07 00:05:44      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:操作   语句   代码段   自己   同步   就是   语言   java语言   释放   

1.对象的加锁及其操作

  程序中单独的并发线程对同一对象进行操作的代码段,成为临界区。java语言中的临界区可以是一个语句块

或者方法,使用关键字synchronized进行标识。

  对象锁:java平台把由synchronized语句指定的对象 设置为对象锁或者监视器(monitor),对象锁是一种独

立方式的排它锁。

  排它锁:当一个线程获取对象锁后,便拥有对该对象的完全操作权,其他任何线程不得对象改对象进行任何操作。

2.死锁

  如果程序中多个线程相互等待对方持有的对象锁,而如果得不到对方的对象锁都不会释放自己拥有的对象锁,则

会造成线程不能继续运行,这就是死锁。

3.线程交互与同步

  wait,notify方法可以实现线程的同步

  当线程执行到synchronized块时,如果里面需要的资源得不到满足、处于等待状态,可以使用wait方法,这样在等待

的同时并暂时释放共享数据对象的锁,其他线程可获得改对象锁。完成操作后,只要调用notify方法就可以通知正在等待

的线程重新占有锁。

 

多线程操作(锁)

标签:操作   语句   代码段   自己   同步   就是   语言   java语言   释放   

原文地址:http://www.cnblogs.com/zhuxiang1633/p/7795488.html

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