Java线程的start方法能调用多次吗?
importjavax.swing.*;importjava.awt.Color;importjava.awt.Image;importjava.awt.Toolkit;...
import javax.swing.*;
import java.awt.Color;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.*;
public class Seven extends JFrame implements Runnable{
public static void main(String[] args){
Seven Home=new Seven();
final Thread t=new Thread(Home);
Timer time=new Timer(4000,new ActionListener(){
public void actionPerformed(ActionEvent e) {
t.start();
System.out.println("启动一次");
}
});
time.start();
Home.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Home.setResizable(false);
Home.setBackground(Color.WHITE);
Home.setBounds(260,220,780,610);
Home.setVisible(true);
}
public void run(){
System.out.println("123");
}
}
要是可以的话为什么第二次会出错呀? 展开
import java.awt.Color;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.*;
public class Seven extends JFrame implements Runnable{
public static void main(String[] args){
Seven Home=new Seven();
final Thread t=new Thread(Home);
Timer time=new Timer(4000,new ActionListener(){
public void actionPerformed(ActionEvent e) {
t.start();
System.out.println("启动一次");
}
});
time.start();
Home.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Home.setResizable(false);
Home.setBackground(Color.WHITE);
Home.setBounds(260,220,780,610);
Home.setVisible(true);
}
public void run(){
System.out.println("123");
}
}
要是可以的话为什么第二次会出错呀? 展开
3个回答
展开全部
一个线程对象只能调用一次start方法.从new到等待运行是单行道,所以如果你对一个已经启动的线程对象再调用一次start方法的话,会产生:IllegalThreadStateException异常.
可以被重复调用的是run()方法。
Thread类中run()和start()方法的区别如下:
run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;
start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;
可以被重复调用的是run()方法。
Thread类中run()和start()方法的区别如下:
run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;
start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;
展开全部
一个线程对象只能调用一次start方法.从new到等待运行是单行道,所以如果你对一个已经启动的线程对象再调用一次start方法的话,会产生:IllegalThreadStateException异常
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询