10_锁重入,异常,继承,同步代码块,死锁

来源:互联网 发布:node没有成员pnext 编辑:程序博客网 时间:2024/06/05 00:28

暂时略读,日后详细解释

1:synchronized锁重入
关键字synchronized拥有锁重入的功能,也就是在使用synchronized时,当一个线程得到一个对象锁之后,再次请求此对象锁时是可以直接得到该对象的锁的。
“锁重入”的概念是:自己可以再次获取自己的内部锁,如果不可重入的话,就会造成死锁。
当存在父子类的继承的时候,子类完全可以通过“可重入锁”调用父类的同步方法。


2:出现异常,锁自动释放


3:同步不具备继承性


4:同步代码块
当两个并发线程访问同一对象object中的synchronized(this)同步代码块时,一段时间内只能有一个线程被执行,另一个线程必须等待当前线程执行完这个代码块。
同步代码块执行效率高于同步方法的原理在于:一半异步,一半同步,即不在synchronized块中的异步执行,在synchronized块中的同步执行。


5.死锁
java线程死锁时一个经典的多线程问题,因为不同的线程都在等待不可能被释放的锁,从而导致所有的任务都无法继完成,造成“假死”。
比如:互相持有锁。但是只要互相等待对方释放锁,就有可能出现死锁。

阅读全文
0 0
原创粉丝点击