关于JAVA多线程问题 一般的,java中是把主线程先执行完毕了才会去执行你的子线程的run方法,优先级应该是主线程比子线程高。如果你要等子线程结束了再结束主线程,可以在start后调用join方法,会优先执行子程序。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上的错,不是这么回事,只要主线程的时间片用完,那么就退出CPU,让其他运行,楼主的这个问题可以使用线程的join方法,如:Thread clientThread=new Thread(new ...);clientThread.start();client.join();....System.exit(0);但是这个我觉得不好,太强制了,可以使用isAlive来判断子线程是否还存活,如public class Main { public static void main(String[] args)throws Exception { Thread thread=new Thread(new ClientThread()); thread.start(); while(thread.isAlive()){ Thread.sleep(100); } System.out.println("main over"); }}class ClientThread implements Runnable{ public void run(){ for(int i=0;i<10000;i++){ } System.out.println("client over"); }}假如有多个子线程,存在List中挨个判断,死掉的移出List,直到List中数据空为止 楼上的意思是不是说JAVA里主线程结束并不会强制它的子也结束,这个和VC里的微软多线程模式不一样? 一般主线程会先执行,如果在分配时间片内主线程还没执行完,那么这时候就要换子线程执行了,如果子线程在分配的时间片也不能执行完,那么就再次换主线程执行,一直这样轮替结束。如果使用的join()方法,则会主线程执行到join()换子线程进入执行,待子线程执行完毕,主线程才再次进入执行。 BufferedReader读取文本 首行多一个‘?’ java学习求助 Java的多线程是为了提高效率而设的吗 java 写文件 动态联编 代友招2年以上Java开发,懂日语,工作地区:上海。 在swt中,如何改变Image的显示大小(在TreeView或ToolBar中) 急,在线等。高手指点下。CLASSPATH问题 长沙搞JAVA的月薪大约多少啊 java能否调用windows的api? JAVA打印中的问题! 急!关于servlet程序的问题
Thread clientThread=new Thread(new ...);
clientThread.start();
client.join();
....
System.exit(0);
但是这个我觉得不好,太强制了,可以使用isAlive来判断子线程是否还存活,如
public class Main {
public static void main(String[] args)throws Exception {
Thread thread=new Thread(new ClientThread());
thread.start();
while(thread.isAlive()){
Thread.sleep(100);
}
System.out.println("main over");
}
}
class ClientThread implements Runnable{
public void run(){
for(int i=0;i<10000;i++){
}
System.out.println("client over");
}
}
假如有多个子线程,存在List中挨个判断,死掉的移出List,直到List中数据空为止
如果使用的join()方法,则会主线程执行到join()换子线程进入执行,待子线程执行完毕,主线程才再次进入执行。