随笔分类 -  java

摘要:Condition的功能类似在传统线程技术中的Object.wait和Object.notity的功能。例子:生产者与消费者 1 import java.util.Random; 2 import java.util.concurrent.ExecutorService; 3 import j... 阅读全文
posted @ 2015-12-11 21:17 吞噬天帝 阅读(334) 评论(2) 推荐(0) 编辑
摘要:读写锁:多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥。即:读的时候不允许写,写的时候不允许读,可以同时读。 synchronized关键字和普通的Lock构造的锁,会造成读与读之间的互斥,因此读写锁可提高性能。例子1:三个线程同时对一个共享数据进行读写。 1 import java.util.R... 阅读全文
posted @ 2015-12-11 21:15 吞噬天帝 阅读(984) 评论(0) 推荐(1) 编辑
摘要:CompletionService用于提交一组Callable任务,其take方法返回已完成的一个Callable任务对应的Future对象。如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以将每个任务的Future保存进一个集合,然后循环这个集合调用Future... 阅读全文
posted @ 2015-12-08 22:48 吞噬天帝 阅读(1508) 评论(0) 推荐(1) 编辑
摘要:普通的创建线程,一种是直接继承Thread,另外一种就是实现Runnable接口。但是这两种都无法在执行完任务之后获取执行结果,Callable、Future就提供了这样的便利。Future的方法说明:booleancancel(booleanmayInterruptIfRunning);cance... 阅读全文
posted @ 2015-12-08 22:46 吞噬天帝 阅读(867) 评论(0) 推荐(0) 编辑
摘要:jvm内存模型程序计数器:是一块很小的内存空间。当线程数量超过cpu数量时,线程之间根据时间片轮询抢夺cpu资源。每一个线程都必须用一个独立的程序计数器,用于记录下一条要运行的指令。java虚拟机栈(线程栈 ):也是线程私有内存空间,他和java线程在同一时间创建,他保存方法的局部变量、部分结果,并... 阅读全文
posted @ 2015-12-07 17:23 吞噬天帝 阅读(1707) 评论(0) 推荐(0) 编辑
摘要:字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。主要方法:public int await() throws InterruptedException, BrokenBarrierExcept... 阅读全文
posted @ 2015-11-27 10:12 吞噬天帝 阅读(308) 评论(0) 推荐(0) 编辑
摘要:例子:以一个停车场运作为例。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入一辆,如果又离开两辆,则... 阅读全文
posted @ 2015-11-27 10:11 吞噬天帝 阅读(503) 评论(0) 推荐(0) 编辑
摘要:方法说明:public void countDown() 递减锁存器的计数,如果计数到达零,则释放所有等待的线程。如果当前计数大于零,则将计数减少。如果新的计数为零,出于线程调度目的,将重新启用所有的等待线程。 如果当前计数等于零,则不发生任何操作。public boolean await(long... 阅读全文
posted @ 2015-11-23 11:47 吞噬天帝 阅读(6326) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示