下载此文档

南京Java培训机构 Java多线程同步工具类总结.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
南京Java培训机构 Java多线程同步工具类总结
CountDownLatch 闭锁:可以延迟线程的进度,直到锁到达终止状态。闭锁的作用相当于一扇门,在锁到达终止状态之前这扇门一直是关闭的。当锁到达终止状态时,允许所有线程通过。CountDownLatch 有一个初始值,通过调用 countDown 可以减少该值,一直到 0 时到达终止状态。
FutureTask 用于执行一个可返回结果的长任务,任务在单独的线程中执行,其他线程可以用 get 方法取任务结果,如果任务尚未完成,线程在 get 上阻塞。
Semaphore 用于控制同时访问某资源,或同时执行某操作的线程数目。信号量有一个初始值即可以分配的信号量总数目。线程任务开始前先调用 acquire 取得信号量,任务结束后调用 release 释放信号量。在 acquire 是如果没有可用信号量,线程将阻塞在 acquire 上,直到其他线程释放一个信号量。
CyclicBarrier 栅栏用于多个线程多次迭代时进行同步,在一轮任务中,任何线程完成任务后都在 barrier 上等待,直到所有其他线程也完成任务,然后一起释放,同时进入下一轮迭代。
CountDownLatch 的例子:
[java]
import ;
import ;
public class DemoOfLatch {
// 利用闭锁 CountDownLatch 控制主线程和子线程的同步
public static void main(String[] args) {
int numberOfThread = 5;
final CountDownLatch startLatch = new CountDownLatch(1); // 用于控制子线程开始
final CountDownLatch stopLatch = new CountDownLatch(numberOfThread); // 用于子线程计数
final AtomicInteger count = new AtomicInteger(0); // 用于分配子线程唯一标识
("Main thread start…");
for ( int i=0; i<numberOfThread; i++ ) {
Thread thread = new Thread( new Runnable() {
***@Override
public void run() {
int tid = ();
try {
// 等代主线程打开启动信号
();
("Thread %d started…%n", tid);
int duration = (int)(() * 5000);
(duration);
} catch (InterruptedEx

南京Java培训机构 Java多线程同步工具类总结 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人908163988
  • 文件大小0 KB
  • 时间2014-11-24
最近更新