创建线程的方式

来源:互联网 发布:jquery.history.js 编辑:程序博客网 时间:2024/06/05 16:33
第一:写一个类,集成Thread类,重写run方法,实例化这个类,调用strat方法
package test06;
public class T extends Thread{
      public void run() {
         for(;;)
       System.out.println(1);
   }
  }
package test06;
public class Test {
    public static void main(String[] args) {
            T t = new  T();  //这个就是new ,新建状态
            t.start();    //runnable -->调用完之后就成了running
          //然后再执行T里面run方法的1,执行完1。就是在执行下面的111,所以说叫多线程。
            因为在调用strat的时候就分为两支,所以输出顺序不定。
               for(;;)
                   System.out.println(111); 
}
}
第二种:写一个类,实现Runnable接口,实现run方法,实例化Thread的类,实例化这个类,作为    
             参数传输Thread构造器,调用strat方法
package test06;
public class I implements Runnable{
   public void run() {
     for(;;)
    System.out.println(222);
}
}
package test06;
public class Test {
   public static void main(String[] args) {
   T t = new  T();  //这个就是new ,新建状态
    t.start();    //runnable -->调用完之后就成了running
             //然后再执行T里面run方法的1,执行完1。就是在执行下面的111,所以说叫多线程。
                    因为在调用strat的时候就分为两支,所以输出顺序不定
 
   / /new一个Thread类,调用构造方法
    Thread t1 = new Thread(new I());  //new新建状态
     t1.start();//runnable -->调用完之后就成了running
}
}
总结
因为每次不管继承还是实现都要写一个类,一个类要继承一个类,一个类要实现一个借口,这样很麻烦,用内部类来写多线程,比较简单一点
用匿名内部类来写多线程
继承类的方式
package test06;
public class Test {
public static void main(String[] args) {
   //匿名内部类写多线程实现
    new Thread(){
       public void run(){
        for(;;)
           System.out.println(333);
  }
  }.start();
 }
 }
实现接口的方式
package test06;
public class Test {
   public static void main(String[] args) {
   //匿名内部类写多线程实现(实现接口的方式)
     new Thread(new Runnable(){
          public void run(){
            for(;;)
               System.out.println(444);
        }
    }).start();
}
}
原创粉丝点击