
线程
SucreKing
参与项目:互联网大数据、餐饮O2O;
展开
-
Java Thread 理论与实践: 处理 InterruptedException
很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出 InterruptedException。您不能忽略这个异常,因为它是一个检查异常(checked exception)。但是应该如何处理它呢?在本月的 Java 理论与实践中,并发专家 BrianGoetz 将解释 InterruptedException 的含义,为什么会抛出 I转载 2015-04-29 11:19:47 · 559 阅读 · 0 评论 -
Exception in thread "main" java.lang.IllegalMonitorStateException
IllegalMonitorStateException - if the current thread is not the owner of the object's monitor. 根据官方注释解释,“当前线程不是对象管理者的所有者”。下面有两个例子: 1. 慎用Integer等数字类型做为共享资源 public class Demo2 extends Thread{原创 2015-05-04 11:01:55 · 8276 阅读 · 1 评论 -
Java多线程——自旋锁
没有获得锁的调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,这就是`自旋锁`,他不用将线城阻塞起来(NON-BLOCKING); 互斥锁 最常使用于线程同步的锁;标记用来保证在任一时刻,只能有一个线程访问该对象。原创 2017-01-12 15:25:46 · 1733 阅读 · 0 评论 -
Java集合——神奇的SynchronousQueue
SynchronousQueue 总的来说,队列同时最多只保持一个元素,但对外不可见,想要直到里面的元素是什么,必须取出来,所以peek()是不可用的(永远返回null)。别的blog中介绍的已经很详细了,这里就把API注释搬过来罢。 一种阻塞队列,其中每个插入操作必须等待另一个线程的对应移除操作,反之亦然。同步队列没有任何内部容量原创 2017-01-12 17:22:00 · 405 阅读 · 0 评论 -
并发编程——可见性
http://ifeve.com/concurrency-visibility/这个有人看了吗?关于volatile、并发安全☞可见性的文章只要我修改一段代码,加不加volatile,其结果都是一样的,是为什么?while (!getStop()) { i++; sleep(); // 休眠1s }给出两个观点: 1. 由于频繁访问 stop ,所以CPU会把该变量一直放到缓存区域原创 2017-01-20 16:01:21 · 290 阅读 · 0 评论