摘要: Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任 阅读全文
posted @ 2017-05-23 17:26 孤独时光 阅读(1644) 评论(0) 推荐(0) 编辑
摘要: ReadWriteLock也是一个接口,只有两个方法 一个用来获取读锁,一个用来获取写锁。也就是说将文件的读写操作分开,分成2个锁来分配给线程,从而使得多个线程可以同时进行读操作。下面的ReentrantReadWriteLock实现了ReadWriteLock接口。 说明thread-1和thre 阅读全文
posted @ 2017-05-23 16:29 孤独时光 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 其实,Lock和synchronized的功能差不多,但是Lock比synchronized控制更细。 一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 获取锁的线程执行完 阅读全文
posted @ 2017-05-23 15:48 孤独时光 阅读(203) 评论(0) 推荐(0) 编辑
摘要: Semaphore(信号量)是用来控制同时访问特定资源的线程数量。 从上面代码看出来给它10个线程,但是每次只允许3个并发的执行。 通过上面例子,来分析一下源码 构造函数 Semaphore(int permits) 接受一个整型的数字,表示可用的许可证数量,也是默认的非公平性模式 Semaphor 阅读全文
posted @ 2017-05-23 14:27 孤独时光 阅读(243) 评论(0) 推荐(0) 编辑