线程的生命周期:
1、new:新建状态,线程对象已创建,但还没开始工作。
2、run: 工作状态。start();
3、block:阻塞状态。yield();
4、dead:死亡状态。 interrupt();
public class FirstThread extends Thread
{
public static void main(String[] args)
{
FirstThread ft=new FirstThread();
ft.start();
try
{
for (int i=0;i<10 ;i++ )
{
Thread.sleep(1000);//暂停1秒
System.out.println("main:"+i);
}
}catch (Exception e){}
public void run(){
try
{
for (int i=0;i<10 ;i++ )
{
Thread.sleep(1000);//暂停1秒
System.out.println("Thread:"+i);
}
}catch (Exception e){}
}
}
}
为什么会有如下编译错误呢?
找到了错误的原因:run()不能写到main方法内 。
本来是想把上面的代码简化一下,如下:
public class FirstThread extends Thread
{
public static void main(String[] args)
{
FirstThread ft=new FirstThread();
ft.start();
print("main");
}
public void run(){
print("thread");
}
public void print(String s){
try
{
for (int i=0;i<10 ;i++ )
{
Thread.sleep(1000);//暂停一秒
System.out.println(s+i);
}
}catch (Exception e){}
}
}
碰到了如下错误:
这是因为print方法不是静态的,难道这是因为main方法有static修饰,因此在main里访问print(),print()也必须是静态的。