java多线程
FireFly__
这个作者很懒,什么都没留下…
展开
-
synchronize和lock锁如何选择
在jdk1.6之后java对synchronize锁做了很多优化,速度已经不比lock锁慢,甚至很多情况下更快,所以推荐使用synchronize锁。但是对锁如果有特殊要求的话,可以使用lock锁。lock锁主要有以下几个扩展的功能:1,等待可中断等待可中断是指当持有锁的线程长期不释放锁的时候,正在等待的线程可以选择放弃等待,改为处理其他事情,可中断特性对处理执行时间非常长的同步块很有转载 2017-12-06 10:45:14 · 2001 阅读 · 0 评论 -
Interrupt如何停止线程
理解interrupt可以假设该线程拥有一个变量boolean stopFlag,一开始这个flag为false关于interrupt有三个方法:1,interrupt() 表示停止调用该方法的线程,这句话并不会停止该线程,只是会告诉该线程,你现在需要停止了。怎样去停止让该线程自己去完成。这个方法就是将flag修改为true2,isInterrupted()表示调用该方法的线程是否要原创 2017-11-09 14:42:02 · 731 阅读 · 0 评论 -
synchronize锁优化
不管学什么东西,都要明白为什么 为什么需要锁优化?因为java程序在挂起唤醒线程的时候需要从用户态切换到内核态,这是非常消耗资源的。 1,自旋锁与自适应自旋 在JDK 1.6中引入了自适应的自旋锁。自适应意味着自旋的时间不再固定了,而是由前一次在同一个锁上的自旋时间及锁的拥有者的状态来决定。如果在同一个锁对象上,自旋等待刚刚成功获得过锁,并且持有锁的线程正转载 2017-12-06 17:00:50 · 1339 阅读 · 0 评论