thmain.javapublic class thmain{
public thmain() {
}
public static void main(String[] s) {
for(int i = 0 ; i < 20 ; i++){
so t = new so(i);
t.start();
}
}}
public class so extends Thread{
private int th_id; //线程ID
private int totalnumber; //统计打印的次数
private long startime = 0;
private long difftime = 3600000; //1小时重新搜索1次
private long currtime = 0;
public so(int i) {
th_id = i;
totalnumber = 0;
} public void run() {
startime = System.currentTimeMillis(); //计算开始的时间
int i = 0;
while(true){
if(i==0){
totalnumber ++;
System.out.println("线程ID:" + th_id +"开始了... 打印了:"+totalnumber+"次");
}
i++;
currtime = System.currentTimeMillis();
if((currtime - startime)>difftime){
startime = System.currentTimeMillis();
i = 0;
}
}
}
}开始运行的时候,开启20个线程,但是在1小时后却只有部分线程执行了:System.out.println("线程ID:" + th_id +"开始了... 打印了:"+totalnumber+"次");
而部分线程始终没有执行请教为什么?
public thmain() {
}
public static void main(String[] s) {
for(int i = 0 ; i < 20 ; i++){
so t = new so(i);
t.start();
}
}}
public class so extends Thread{
private int th_id; //线程ID
private int totalnumber; //统计打印的次数
private long startime = 0;
private long difftime = 3600000; //1小时重新搜索1次
private long currtime = 0;
public so(int i) {
th_id = i;
totalnumber = 0;
} public void run() {
startime = System.currentTimeMillis(); //计算开始的时间
int i = 0;
while(true){
if(i==0){
totalnumber ++;
System.out.println("线程ID:" + th_id +"开始了... 打印了:"+totalnumber+"次");
}
i++;
currtime = System.currentTimeMillis();
if((currtime - startime)>difftime){
startime = System.currentTimeMillis();
i = 0;
}
}
}
}开始运行的时候,开启20个线程,但是在1小时后却只有部分线程执行了:System.out.println("线程ID:" + th_id +"开始了... 打印了:"+totalnumber+"次");
而部分线程始终没有执行请教为什么?
解决方案 »
- MyEclipse 有没有自带连接MSSQ jar包在哪里
- 排班表设计
- 如果要在界面放两个CHECKBOX,每点击一个CHECKBOX,就弹出一个MSG,显示这个CHECKBOX的名字,应该怎么做(求一段能运行的源程序)
- 还是线程的问题,破玩意烦死我了。
- JList动态添加删除内容的方法问题
- 才学 j2ee 的, stuck in 一个“简单”的 j2ee 问题
- 怎么给java随机的一个整数加上括号
- 请问:怎样获得两个时间间隔的 秒/毫秒 数?
- applet有办法关闭它所在的IE窗口吗?
- 一个关于子类自动调用父类构造方法的问题,百思不得其解
- 关于监听用户非法退出要怎么解决???
- java 基础问题
可能是你设的周期太长了,有的线程还没有机会打印,也有可能是System.out.println("线程ID:" + th_id +"开始了... 打印了:"+totalnumber+"次");有缓存的原因它没有输出来
像楼上说的加个synchronized完全没有必要,因为这是各个线程自己干自己的没有同步的机会
平优先级的线程,执行顺序是随机的,有JVM管理,没有一定的顺序。高优先级的线程,其执行的几率会高,但不是肯定。
main 本身就是一个线程,是主线程
平优先级的线程,执行顺序是随机的,有JVM管理,没有一定的顺序。
高优先级的线程,其执行的几率会高,但不是肯定。
main 本身就是一个线程,是主线程
也有可能是你判断条件的原因
多做测试试试
2)在你的while(...)中,加上sleep(...),给其它线程执行的机会,就不一样了。
线程ID:0开始了... 打印了:1次
线程ID:1开始了... 打印了:1次
线程ID:2开始了... 打印了:1次
线程ID:3开始了... 打印了:1次
线程ID:4开始了... 打印了:1次
线程ID:5开始了... 打印了:1次
线程ID:6开始了... 打印了:1次
线程ID:7开始了... 打印了:1次
线程ID:8开始了... 打印了:1次
线程ID:9开始了... 打印了:1次
线程ID:10开始了... 打印了:1次
线程ID:11开始了... 打印了:1次
线程ID:12开始了... 打印了:1次
线程ID:13开始了... 打印了:1次
线程ID:14开始了... 打印了:1次
线程ID:15开始了... 打印了:1次
线程ID:16开始了... 打印了:1次
线程ID:17开始了... 打印了:1次
线程ID:18开始了... 打印了:1次
线程ID:19开始了... 打印了:1次
线程ID:0开始了... 打印了:2次
线程ID:1开始了... 打印了:2次
线程ID:2开始了... 打印了:2次
线程ID:3开始了... 打印了:2次
线程ID:4开始了... 打印了:2次
线程ID:5开始了... 打印了:2次
线程ID:6开始了... 打印了:2次
线程ID:7开始了... 打印了:2次
线程ID:8开始了... 打印了:2次
线程ID:9开始了... 打印了:2次
线程ID:10开始了... 打印了:2次
线程ID:11开始了... 打印了:2次
线程ID:12开始了... 打印了:2次
线程ID:13开始了... 打印了:2次
线程ID:14开始了... 打印了:2次
线程ID:15开始了... 打印了:2次
线程ID:16开始了... 打印了:2次
线程ID:17开始了... 打印了:2次
线程ID:18开始了... 打印了:2次
线程ID:19开始了... 打印了:2次
线程ID:0开始了... 打印了:3次
线程ID:1开始了... 打印了:3次
线程ID:2开始了... 打印了:3次
线程ID:3开始了... 打印了:3次
线程ID:4开始了... 打印了:3次
线程ID:5开始了... 打印了:3次
线程ID:6开始了... 打印了:3次
线程ID:7开始了... 打印了:3次
线程ID:8开始了... 打印了:3次
线程ID:9开始了... 打印了:3次
线程ID:10开始了... 打印了:3次
线程ID:11开始了... 打印了:3次
线程ID:12开始了... 打印了:3次
线程ID:13开始了... 打印了:3次
线程ID:14开始了... 打印了:3次
线程ID:15开始了... 打印了:3次
线程ID:16开始了... 打印了:3次
线程ID:17开始了... 打印了:3次
线程ID:18开始了... 打印了:3次
线程ID:19开始了... 打印了:3次
线程ID:0开始了... 打印了:4次
线程ID:1开始了... 打印了:4次
线程ID:2开始了... 打印了:4次
线程ID:3开始了... 打印了:4次
线程ID:4开始了... 打印了:4次
线程ID:5开始了... 打印了:4次
线程ID:6开始了... 打印了:4次
线程ID:7开始了... 打印了:4次
线程ID:8开始了... 打印了:4次
线程ID:9开始了... 打印了:4次
线程ID:10开始了... 打印了:4次
线程ID:11开始了... 打印了:4次
线程ID:12开始了... 打印了:4次
线程ID:13开始了... 打印了:4次
线程ID:14开始了... 打印了:4次
线程ID:15开始了... 打印了:4次
线程ID:16开始了... 打印了:4次
线程ID:17开始了... 打印了:4次
线程ID:18开始了... 打印了:4次
线程ID:19开始了... 打印了:4次
你的问题也许会出现 不过我没想明白 等待高手
把时间设短一点,比如1000毫秒,就能看到所有的线程都会有输出,只不过顺序会比较乱,有的线程输出三四次了,有的线程才输出一两次
线程ID:0开始了... 打印了:1次
线程ID:1开始了... 打印了:1次
线程ID:3开始了... 打印了:1次
线程ID:2开始了... 打印了:1次
线程ID:4开始了... 打印了:1次
线程ID:5开始了... 打印了:1次
线程ID:6开始了... 打印了:1次
线程ID:7开始了... 打印了:1次
线程ID:8开始了... 打印了:1次
线程ID:9开始了... 打印了:1次
线程ID:10开始了... 打印了:1次
线程ID:11开始了... 打印了:1次
线程ID:12开始了... 打印了:1次
线程ID:13开始了... 打印了:1次
线程ID:14开始了... 打印了:1次
线程ID:15开始了... 打印了:1次
线程ID:16开始了... 打印了:1次
线程ID:17开始了... 打印了:1次
线程ID:18开始了... 打印了:1次
线程ID:19开始了... 打印了:1次
线程ID:1开始了... 打印了:2次
线程ID:0开始了... 打印了:2次
线程ID:3开始了... 打印了:2次
线程ID:2开始了... 打印了:2次
线程ID:5开始了... 打印了:2次
线程ID:4开始了... 打印了:2次
线程ID:7开始了... 打印了:2次
线程ID:6开始了... 打印了:2次
线程ID:8开始了... 打印了:2次
线程ID:9开始了... 打印了:2次
线程ID:6开始了... 打印了:3次
线程ID:7开始了... 打印了:3次
线程ID:4开始了... 打印了:3次
线程ID:5开始了... 打印了:3次
线程ID:3开始了... 打印了:3次
线程ID:0开始了... 打印了:3次
线程ID:2开始了... 打印了:3次
线程ID:1开始了... 打印了:3次
线程ID:19开始了... 打印了:2次
线程ID:18开始了... 打印了:2次
线程ID:18开始了... 打印了:3次
线程ID:17开始了... 打印了:2次
线程ID:16开始了... 打印了:2次
线程ID:15开始了... 打印了:2次
线程ID:14开始了... 打印了:2次
线程ID:13开始了... 打印了:2次
线程ID:12开始了... 打印了:2次
线程ID:12开始了... 打印了:3次
线程ID:11开始了... 打印了:2次
线程ID:11开始了... 打印了:3次
线程ID:10开始了... 打印了:2次
线程ID:10开始了... 打印了:3次
线程ID:18开始了... 打印了:4次
线程ID:6开始了... 打印了:4次
线程ID:7开始了... 打印了:4次
线程ID:5开始了... 打印了:4次
线程ID:4开始了... 打印了:4次
线程ID:0开始了... 打印了:4次
线程ID:3开始了... 打印了:4次
线程ID:2开始了... 打印了:4次
线程ID:1开始了... 打印了:4次
线程ID:8开始了... 打印了:3次
线程ID:8开始了... 打印了:4次
线程ID:13开始了... 打印了:3次
线程ID:14开始了... 打印了:3次
线程ID:9开始了... 打印了:3次
线程ID:9开始了... 打印了:4次
线程ID:15开始了... 打印了:3次
线程ID:15开始了... 打印了:4次
线程ID:16开始了... 打印了:3次
线程ID:16开始了... 打印了:4次
线程ID:17开始了... 打印了:3次
线程ID:17开始了... 打印了:4次
线程ID:19开始了... 打印了:3次
线程ID:19开始了... 打印了:4次
线程ID:14开始了... 打印了:4次
线程ID:13开始了... 打印了:4次
线程ID:10开始了... 打印了:4次
线程ID:12开始了... 打印了:4次
线程ID:18开始了... 打印了:5次
线程ID:11开始了... 打印了:4次
线程ID:6开始了... 打印了:5次
线程ID:0开始了... 打印了:5次
线程ID:5开始了... 打印了:5次
线程ID:3开始了... 打印了:5次
线程ID:3开始了... 打印了:6次
线程ID:7开始了... 打印了:5次
线程ID:7开始了... 打印了:6次
线程ID:2开始了... 打印了:5次
线程ID:2开始了... 打印了:6次
线程ID:4开始了... 打印了:5次
线程ID:4开始了... 打印了:6次
线程ID:1开始了... 打印了:5次
线程ID:1开始了... 打印了:6次
线程ID:8开始了... 打印了:5次
线程ID:0开始了... 打印了:6次
线程ID:5开始了... 打印了:6次
线程ID:11开始了... 打印了:5次
线程ID:0开始了... 打印了:7次
线程ID:5开始了... 打印了:7次
线程ID:4开始了... 打印了:7次
线程ID:1开始了... 打印了:7次
线程ID:7开始了... 打印了:7次
线程ID:2开始了... 打印了:7次
线程ID:3开始了... 打印了:7次
线程ID:8开始了... 打印了:6次
线程ID:18开始了... 打印了:6次
线程ID:18开始了... 打印了:7次
线程ID:17开始了... 打印了:5次
线程ID:17开始了... 打印了:6次
线程ID:16开始了... 打印了:5次
线程ID:16开始了... 打印了:6次
线程ID:19开始了... 打印了:5次
线程ID:19开始了... 打印了:6次
线程ID:10开始了... 打印了:5次
线程ID:10开始了... 打印了:6次