主线程等待次线程执
来源:互联网 发布:907和140数据对比 编辑:程序博客网 时间:2024/06/08 17:33
一、
package com.shine.bill;
public class MyCountDown {
private int count;
public MyCountDown(int count) {
this.count = count;
}
public synchronized void countDown() {
count--;
}
public synchronized boolean hasNext() {
return (count > 0);
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
二、
package com.shine.bill;
public class ImportThread extends Thread {
private MyCountDown c;
public ImportThread(MyCountDown c) {
this.c = c;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "开始...");// 打印开始标记
// Do something
System.out.println(Thread.currentThread().getName() + "结束. 还有"
+ c.getCount() + " 个线程");// 打印结束标记
c.countDown();// 计时器减1
}
}
三、
package com.shine.bill;
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName() + "开始");// 打印开始标记
int threadNum = 100;
MyCountDown c = new MyCountDown(threadNum);// 初始化countDown
for (int ii = 0; ii < threadNum; ii++) {// 开threadNum个线程
Thread t = new ImportThread(c);
t.start();
}
while (true) {// 等待所有子线程执行完
if (!c.hasNext())
break;
}
System.out.println(Thread.currentThread().getName() + "结束.");// 打印结束标
}
}
四、分机部署
public static void main(String[] args) {
Long marchineNum = 3L;
Long totalCount=10L;
for (int i = 1; i <= marchineNum; i++) {
// 从第几条记录开始
long startIndex = (i - 1) *(totalCount/marchineNum);
long endIndex=0;
// 从第几条记录结束
if(i==marchineNum)
{
endIndex =10L-1;
}else{
endIndex = startIndex + (totalCount/marchineNum)-1;
}
System.out.println("区间:"+startIndex+"-"+endIndex);
}
}
- 主线程等待次线程执
- 线程-主线程等待子线程
- 线程通信(子线程运行10次,主线程运行100次,如此循环50次)[用condition替代wait,notify等待和唤醒操作]
- 主线程等待子线程完成
- 主线程等待子线程执行结束
- 主线程等待子线程完成
- java 主线程 等待 子线程
- Java实现主线程等待子线程
- 主线程等待子线程结束
- 主线程等待线程池结束
- 主线程等待子线程操作完成
- java 主线程等待子线程结束
- Java主线程等待子线程结束
- Java实现主线程等待子线程
- Java实现主线程等待子线程
- java线程池主线程等待子线程执行完成
- Java主线程等待子线程、线程池
- java线程池主线程等待子线程执行完成
- 插入排序(直接插入排序,折半插入排序,2路插入排序,希尔排序)
- MySQL学习笔记(1)
- 51系列小型操作系统精髓 简单实现12 C语言版再优化
- JFolder_JSP后门代码
- Myeclipse10安装反编译软件笔记
- 主线程等待次线程执
- LINUX下MATLAB MEX编译的问题
- CentOS下Hadoop伪分布模式安装笔记
- C#调用WebService实现天气预报
- java.lang.NoSuchMethodException
- 分析uboot是如何启动内核的 .
- 交换排序(冒泡排序,快速排序)
- ios程序的完整流程
- 对memcached使用的总结和使用场景