我想在下面的程序中打印100作为输出。
我的回答为0。
class s extends Thread{
int j=0;
public void run() {
try{Thread.sleep(5000);}
catch(Exception e){}
j=100;
}
public static void main(String args[])
{
s t1=new s();
t1.start();
System.out.println(t1.j);
}
}
答案 0 :(得分:13)
您需要等待Thread
完成..我已经为您添加了对join的调用,这将阻止并等待Thread
完成,然后再查看价值j
:
class s extends Thread{
int j=0;
public void run() {
try{ Thread.sleep(5000); } catch( Exception e ){}
j = 100;
}
public static void main(String args[]) throws InterruptedException {
s t1=new s();
t1.start();
t1.join() ; // Wait for t1 to finish
System.out.println(t1.j);
}
}
答案 1 :(得分:5)
您已将t1加入main。
因此,父thread(main())
将等到子线程完成。
答案 2 :(得分:2)
加入t1
t1.join
以便主线程等待
答案 3 :(得分:2)
将线程t1加入主
t1.join