05 2018 档案

摘要:如果要进行多个数据的保存,无疑首选类集(List、Set、Queue、Map),在类集的学习的时候也知道一个概念:许多集合的子类都具有同步与异步的差别,但是如果真的要在多线程之中去使用这些类,是否真的可以用呢? 范例:观察一下类集的问题: 不过很遗憾的是这个时候以上的代码出现了“java.util. 阅读全文
posted @ 2018-05-21 11:40 iTermis 阅读(492) 评论(0) 推荐(0)
摘要:Exchanger交换空间 如果现在有两个线程,一个线程负责生产数据,另外一个线程负责消费数据,那么这个两个线程之间一定会存在一个公共的区域,那么这个区域的实现在JUC包之中称为Exchanger。 java.util.concurrent.Exchanger类表示一种两个线程可以进行互相交换对象的 阅读全文
posted @ 2018-05-11 16:01 iTermis 阅读(718) 评论(0) 推荐(0)
摘要:锁的机制从整体的运行转态来讲核心就是:阻塞,解除阻塞,但是如果仅仅是这点功能,那么JUC并不能称为一个优秀的线程开发框架,然而是因为在juc里面提供了大量方便的同步工具辅助类。 Semaphore信号量 Semaphore通常用于限制可以访问某些资源(物理or逻辑)的线程数目。 例如,大家排队去银行 阅读全文
posted @ 2018-05-11 11:51 iTermis 阅读(2468) 评论(0) 推荐(2)
摘要:java.util.concurrent.locks.LockSupport这个是一个独立的类,这个类的主要功能是用来解决Thread里面提供的suspend()(挂起线程)、resume()(恢复运行)方法,这个两个方法的本质上会存在有死锁的嫌疑,所以从JDK1.4开始将其就已经列为不建议使用的方 阅读全文
posted @ 2018-05-07 17:17 iTermis 阅读(292) 评论(0) 推荐(0)
摘要:在进行锁处理的时候还有一个接口:Condition,这个接口可以由用户来自己进行锁的对象创建。 Condition的作用是对锁进行更精确的控制。 Condition的await()方法相当于Object的wait()方法,Condition的signal()方法相当于Object的notify()方 阅读全文
posted @ 2018-05-03 18:34 iTermis 阅读(399) 评论(0) 推荐(0)