Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86918
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 248
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-02 18:03
文章分类
文章存档

2014年(29)

我的朋友

分类: Java

2014-03-18 14:15:17

一、使用方法

Java中,线程的使用方法主要分为两类,一是扩展 java.lang.Thread类,二是实现 Runnable接口。


扩展Thread类方法实例:
    
//扩展java.lang.Thread类
public class Main extends Thread{
       public Main(String name){
           super(name)
       }
       public static void main(String[] args) {
        // TODO Auto-generated method stub
       Thread th1 = new Main("张三");
       Thread th2 = new Main("李四")
                                                                                                                                                                                                                                                   
           th1.start();
           th2.start();
       }
       public void run(){
         for(int i=1; i<6;i++){
           System.out.println(this.name+i)
         }
       }
                                                                                                                                                                                                                                                      
}


实现Runnable接口实例:
    
public class MyThread implemets Runnable{
  private String name;
  public MyThread (String name){
    this.name = name;
  }
  //实现Runnable接口的run方法
  @Override
  public void run(){
    for(i=1; i<6; i++){
      System.out.println(name+i);
    }
  }
}
    
public class Main {
  public static void main(String[] args){
     MyThread my1 = new MyThread("张三");
     MyThread my2 = new MyThread("李四");
     Thread th1 = new Thread(my1);
     Thread th2 = new Thread(my2);
     th1.start();
     th2.start();
  }
}


从以上两种方式可以看出,线程的实现方法是放在run方法中的,所以需要实现/重写run方法。其次是要用Thread类调用start方法来启动线程。



自己手贱,为了在享受一次学习成果就又运行了一次,发现一个问题


第一运行,是先println李四,第二次运行则先println张三。

回顾前面的代码:  Thread th1 = Thread("张三"); th1.start();

分明是th1先调用的start方法啊,为什么第一次运行先println李四呢?


让我们先来了解一下线程从生到死的过程,就好解释这个问题了。


二、线程的生死存亡过程

线程丛生到死一共分为五步,即:创建、可运行、运行、等待/阻塞/睡眠、死亡。
阅读(1214) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

CU博客助理2014-05-22 13:06:23

嘉宾点评:
作为初学者自己的一个学习备份,这篇文章还是有用的。这也是我们这个博客网站开发的初衷之一:技术留备、总结、交流的平台。你有一个很好地开端,你已经在留备。多一些技术储备就可以横向比较来总结,总结出自己的东西就有了交流的基础。加油!(感谢您参与“原创博文评选”获奖结果即将公布)