编写多线程代码时,启动线程后等待线程结束方法
2015-07-24 09:04
417 查看
在编写多线程代码时,如果主线程结束,那么子线程也会随之结束,如何等待线程结束再往下执行。
等待线程执行完成代码。
线程代码:
package demo;
import java.util.concurrent.CountDownLatch;
public class NodeSqlThread1 implements Runnable{
private CountDownLatch cdlSync;
public NodeSqlThread1(CountDownLatch cdlSync){
this.cdlSync=cdlSync;
}
@Override
public void run() {
for(int i=0;i<100;i++){
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
cdlSync.countDown();
}
}
package demo;
import java.util.concurrent.CountDownLatch;
import com.hotent.BaseTestCase;
public class NodeSqlTest1 extends BaseTestCase {
static CountDownLatch cdlSync=new CountDownLatch(10);
@org.junit.Test
public void test() throws InterruptedException{
NodeSqlThread1 t =new NodeSqlThread1(cdlSync);
for(int i =0;i< 10;i++){
new Thread(t).start();
}
cdlSync.await();
System.out.println(cdlSync.getCount()+"完成");
}
}
最重要的是 cdlSync.await(); 它会等待所有线程结束后继续往下执行。
等待线程执行完成代码。
线程代码:
package demo;
import java.util.concurrent.CountDownLatch;
public class NodeSqlThread1 implements Runnable{
private CountDownLatch cdlSync;
public NodeSqlThread1(CountDownLatch cdlSync){
this.cdlSync=cdlSync;
}
@Override
public void run() {
for(int i=0;i<100;i++){
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
cdlSync.countDown();
}
}
package demo;
import java.util.concurrent.CountDownLatch;
import com.hotent.BaseTestCase;
public class NodeSqlTest1 extends BaseTestCase {
static CountDownLatch cdlSync=new CountDownLatch(10);
@org.junit.Test
public void test() throws InterruptedException{
NodeSqlThread1 t =new NodeSqlThread1(cdlSync);
for(int i =0;i< 10;i++){
new Thread(t).start();
}
cdlSync.await();
System.out.println(cdlSync.getCount()+"完成");
}
}
最重要的是 cdlSync.await(); 它会等待所有线程结束后继续往下执行。
相关文章推荐
- java中的单例设计模式简谈
- Effective C++ 学习记录
- QT中的.pro文件
- Python的Django框架中模板碎片缓存简介
- 用C语言操作MySQL数据库的通用方法
- C++ map 的基本操作和使用
- 在 windows 上折腾 GitHub
- ContentProvider的使用(2)
- Golang实例001
- QT QSS 使用
- 数据挖掘之文本特征提取【理论+部分java代码实现】
- C语言(2)--牛顿迭代法、舍罕王的赏赐、解两个不等式、枚举类型变量输出三原色全排列
- django 1.8 官方文档翻译: 2-4-4 编写迁移
- Java I/O 详解
- java学习路线
- 从iReport至Jaspersoft Studio
- Scala开发环境的搭建和HelloWorld
- Html2MHTCompiler.java
- C#学习笔记——控件篇
- struts 文件下载