线程的创建和启动:
一、继承Thread类来创建并启动多线程:
1. 定义Thread类的子类,重写该类的run方法,该run方法的方法体就代表了线程需要完成的任务。
2. 创建Thrad子类的实例。
3. 使用该实例的start方法来启动线程。
eg:
public class FirstThread extends Thread{ private int i; //重写run方法,run方法的方法体就是线程执行体 @Override public void run() { for(;i<100;i++){ //当线程类继承Thread类时,可以直接调用getName()返回当前线程的名字。 //使用this获取当前线程 System.out.println(Thread.currentThread().getName()+" "+i); } } public static void main(String[] args) { for(int i = 0; i<100; i++){ System.out.println(Thread.currentThread().getName()+" "+i); if(i == 20){ //创建并启动第一条线程 new FirstThread().start(); //创建并启动第二条线程 new FirstThread().start(); } } } }
程序每次创建线程对象都需要创建一个FirestThrad对象,所以Thread-0和Thread-1不能共享private i属性。
使用继承Thread类的方法来创建线程类,多条线程之间无法共享线程类的实例变量。
程序可以通过setName(String name)方法为线程设置名字,通过getName()获得线程的名字。默认下,主线程的名字为main,用户启动的多条线程的名字依次为Thread-0,Thread-1 ...Thread-n 。
二、使用runnable接口