synchronized 锁代码块
时间: 2023-11-14 14:28:47 浏览: 136
synchronized锁代码块是一种在Java中用于实现线程同步的机制。使用synchronized关键字修饰的代码块,可以保证同一时刻只有一个线程可以进入该代码块执行。
锁代码块使用的是对象锁的方式,也就是说,锁的范围是一个特定的对象。通常情况下,我们使用this关键字作为锁对象,也就是锁定当前对象。当一个线程进入同步代码块时,它会持有该对象的锁,其他线程需要等待该线程释放锁后才能进入代码块执行。
另外,synchronized还可以锁非this对象。这种方式可以提高多线程并发执行的效率。例如,如果一个类中有多个synchronized方法,使用非this对象作为锁可以使得这些方法在执行时不互相阻塞,从而提高效率。
总结来说,synchronized锁代码块是一种用于实现线程同步的机制,可以确保同一时刻只有一个线程进入代码块执行。可以使用this关键字锁定当前对象,也可以使用非this对象作为锁来提高并发执行效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [synchronized锁(方法锁, 代码块锁)](https://blog.csdn.net/luciferlongxu/article/details/124809818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [synchronized锁机制 之 代码块锁](https://blog.csdn.net/qq_16504067/article/details/117695564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文