读书人

线程优先的有关问题

发布时间: 2013-04-05 10:24:33 作者: rapoo

线程优先的问题

我有两个方法 fun1和fun2,在fun1中调用了fun2,在fun2中开了一个线程(很耗时间的线程),我现在想让fun2运行完了之后,再继续运行fun1,应该怎么做?求指点。
如下代码:
我要的输出结果为:
fun2
fun2
fun1
应该怎么做?


package thread;

public class ThTest {

void fun1() {
fun2();
System.out.println("fun1");
}
void fun2() {
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 2; i++) {
System.out.println("fun2");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}).start();

}

public static void main(String[] args) {
ThTest th = new ThTest();
th.fun1();
}
}



[解决办法]

void fun2() {
Thread t = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 2; i++) {
System.out.println("fun2");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

});
t.start();
try{
t.join();
}catch(Exception e){
e.printStackTrace();
}
}


[解决办法]
引用:
Java code?1234567891011121314151617181920212223void fun2() { Thread t = new Thread(new Runnable() { public void run() { for (int i = 0; i < 2; i++) { ……


线程优先的有关问题
join() 方法:它能够使调用该方法的线程在此之前执行完毕。

读书人网 >J2SE开发

热点推荐