不确定我是否正确行事。我需要创建一个新线程来写出一定次数的消息。我认为这种方法到目前为止还不确定它是否是最好的方法。然后我需要在线程完成运行后显示另一条消息。我怎么做 ?使用isAlive()?我该如何实现?
public class MyThread extends Thread {
public void run() {
int i = 0;
while (i < 10) {
System.out.println("hi");
i++;
}
}
public static void main(String[] args) {
String n = Thread.currentThread().getName();
System.out.println(n);
Thread t = new MyThread();
t.start();
}
}
答案 0 :(得分:5)
直到现在你正在走上正轨。现在,要显示另一条消息,当此线程完成时,您可以从主线程调用此线程上的Thread#join
。当您使用InterruptedException
方法时,您还需要处理t.join
。
然后当您的线程t
完成时,您的主线程将继续。所以,继续这样的主线程: -
t.start();
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Your Message");
当你在特定线程(这里是主线程)中调用t.join
时,只有当线程t
完成执行时,该线程才会继续执行。
答案 1 :(得分:1)
扩展Thread
类本身通常不是一个好习惯。
您应该创建Runnable
接口的实现,如下所示:
public class MyRunnable implements Runnable {
public void run() {
//your code here
}
}
并将其传递给线程,如下所示:
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
答案 2 :(得分:0)
这就是你如何做到这一点.........
class A implements Runnable
{
public void run()
{
for(int i=1;i<=10;i++)
System.out.println(Thread.currentThread().getName()+"\t"+i+" hi");
}
}
class join1
{
public static void main(String args[])throws Exception
{
A a=new A();
Thread t1=new Thread(a,"abhi");
t1.start();
t1.join();
System.out.println("hello this is me");//the message u want to display
}
}
请参阅join()详细信息 join