多线程快速入门
一、创建一个线程
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); } } }