多线程笔记(二)

线程的创建和启动:

一、继承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接口

猜你喜欢

转载自yxwang0615.iteye.com/blog/1019807