多线程快速入门

一、创建一个线程

Java 提供了四种创建线程的方法:

  • 通过实现 Runnable 接口;
  • 通过继承 Thread 类本身;
  • 匿名内部类
  • 通过 Callable 和 Future 创建线程。

1、通过继承的方式

 

 1 public class Demo1 extends Thread{ 3     private String threadName;
 4     
 5     public Demo1(String name) {
 6     
 7         this.threadName=name;
 8     }
 9 
10     public void run() {
11         
12          for (int i = 0; i < 10; i++) {
13               System.out.println("子线程: " + threadName + ", " + i);
14              
15         }
16          System.out.println("子线程 " +  threadName + "退出");
17     }
18     
19 }

2、通过实现Runnable接口来创建线程(推荐方式,面向接口,可以实现多个继承)

public class Demo2 implements Runnable{
        private String threadName;
        public Demo2(String name) {
            this.threadName=name;
            // TODO Auto-generated constructor stub
        }
    @Override
    public void run() {
        for (int i = 0; i <10; i++) {
             System.out.println("子线程: " + threadName + ", " + i);
            
        }
        
    }

}

测试

public class Test {
public static void main(String[] args) {
    Demo2 demo2=new Demo2("demo-2");
    new Thread(demo2).start();
    for (int i = 0; i < 10; i++) {
        
        System.out.println("主线程: " + Thread.currentThread().getName() + ", " + i);
        
    }
    System.out.println("主线程执行完毕");
}
}

 3、匿名内部类

public class Test {
public static void main(String[] args) {
    Thread t1=new Thread(new Runnable() {
        
        @Override
        public void run() {
            // TODO Auto-generated method stub
            for (int i = 0; i <10; i++) {
                System.out.println("子线程方式"+Thread.currentThread().getName()+i);
            }
        }
    });
    t1.start();
    for (int i = 0; i < 10; i++) {
        System.out.println("主线程方式"+Thread.currentThread().getName()+i);
    }
}
}

 

posted @ 2019-08-22 09:46  悠悠球  阅读(136)  评论(0编辑  收藏  举报