线程学习一 ---- 通过继承Thread

线程的生命周期:

 

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()也必须是静态的。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值