线程的创建和启动:
一、继承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接口