您的位置:首页 > 编程语言 > Java开发

Java 多线程控制 CountDownLatch

2014-11-27 14:11 465 查看
多线程开发过程中,可能会有一些需求如这样:需要在一定数量线程启动后,做一些其他的操作。那么利用CountDownLatch再方便不过了。不多说上代码:

package thread;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class CountDownLatchTest implements Runnable
{

private int i;

private CountDownLatch countDownLatch;

public CountDownLatchTest(CountDownLatch count, int i)
{
this.countDownLatch = count;
this.i = i;
}

public void run()
{
int count = 5;
while (count > 0)
{
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
count--;
}
this.countDownLatch.countDown();
System.out.println("I am " + this.i);
}

public static void main(String[] args) throws InterruptedException
{
CountDownLatch countDownLatch = new CountDownLatch(10);
ExecutorService threadpool = Executors.newCachedThreadPool();
for (int i = 0; i < 20; i++)
{
CountDownLatchTest test = new CountDownLatchTest(countDownLatch, i);
threadpool.submit(test);
}
countDownLatch.await();
System.out.println("Now, Let's go! Do others!!!");

threadpool.shutdown();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: