多线程的同步和通信 synchronized也可以修饰语句块,synchronized修饰的语句块称为同步代码块。 synchronized修饰同步代码块时,必要要对某一个对象加锁才能同步,所以需要一个对象;如synchronized(this){..}或synchronized(o){..} o为Object对象 This代表当前对象,只有拿到当前对象或对象o的锁标记的线程才能进入同步代码块执行 锁池 线程想要调用同步方法或进入同步代码块执行,必须要拿到对象的锁标记,如果拿不到对象的锁标记则现程就会被堵住暂停,那么这些被堵住的线程在哪里呢?他们会在对象的锁池里 锁池是一个空间,每个对象都有,存放等待该对象锁标记的线程 对象o有一个同步代码块,如synchronized(o){..}当线程还没有拿到对象o的锁标记时,则就会被阻塞在对象o的锁池里等待;当另一个线程释放了该对象o的锁标记后,则在锁池中的很多线程会去争拿锁标记,其中只有一个线程可以拿到锁标记,进入运行状态。那么在锁池中的其他多个线程到底谁先拿到锁标记呢?这是由操作系统决定的,随机的。 在java中,一个线程可以同时拿到多个对象的锁标记,所以同步代码块是可以嵌套的。如:synchronized(o1){..synchronized(o2){…}..} 死锁的产生、原因和特性 在一个线程进入锁池后不会释放任何它已拥有的锁标记
您可能关注的文档
最近下载
- 机场油库安全管理制度体系优化研究.docx VIP
- 医学课件-《甲状腺讲》教学课件.pptx VIP
- 专题05透镜及其应用-2007-2016十年初中物理竞赛分类解析(学生版).pdf VIP
- 2007-2016十年初中物理竞赛分类解析专题10 浮力.pdf VIP
- 2026年版-FOCUSPDCA降低骨科I类切口手术部位感染率CQI-新版课件.pptx
- 如何获得免费的网络来注册一个免费的电子邮箱账户.pdf VIP
- 西方艺术史PPT课件.pptx VIP
- 《喀斯特地貌》课件.ppt VIP
- 2025年课件-FOCUSPDCA提高青少年近视防控知识普及率CQI(眼科)-新版.pptx
- 2025上海辅警面试题目及答案.doc VIP
原创力文档

文档评论(0)