一个线程的概念问题.....

joo 2002-04-10 11:16:24
谁能给我讲讲join()的用法?
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lianyunzxp 2002-04-10
  • 打赏
  • 举报
回复
当然具体的参照文档资料,这只是我自己的一点看法
lianyunzxp 2002-04-10
  • 打赏
  • 举报
回复
package test;
import java.io.*;
public class MethodTest {
static PrintWriter out = new PrintWriter(System.out,true);
public static void main(String[] args) {
FirstThread first = new FirstThread();
SecondThread second = new SecondThread();
first.start();
second.start();
//本来程序中只有主线程,现在多了两个线程
try{
out.println("Waiting for first thread to finish...");
first.join();
//join的意思就是说先让主线程等待,运行first线程,等first的run方法结束后
//再接着运行主线程
out.println("It's a long wait!");
out.println("Wakong up second thread...");
synchronized(second){
second.notify();
}
out.println("Waiting for second thread to finish...");
second.join();
//与上面的一样,让主线程等待,运行second的run方法
}catch(InterruptedException e){
}
out.println("I'm ready to finish too.");
}

}
class FirstThread extends Thread{
public void run(){
try{
MethodTest.out.println(" First thread starts running.");
sleep(10000);
MethodTest.out.println(" First thread finishes running.");
}catch(InterruptedException e){
}
}
}
class SecondThread extends Thread{
public synchronized void run(){
try{
MethodTest.out.println(" Second thread starts running.");
MethodTest.out.println(" Second thread suspends itself.");
wait();
MethodTest.out.println(" Second thread runs again and finishes.");
}catch(InterruptedException e){
}
}
}
你可以先运行一下试试,然后再去掉两处join,比较结果
MagicJohn 2002-04-10
  • 打赏
  • 举报
回复
join public final void join(long millis,
int nanos)
throws InterruptedException Waits at most millis

milliseconds plus nanos nanoseconds for this thread to die.Parameters:millis - the time to wait in milliseconds.nanos - 0-999999 additional nanoseconds to wait.Throws:IllegalArgumentException - if the value of millis is negative the value of nanos is not in the range 0-999999.InterruptedException - if another thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧