创建线程有两种方法
1.继承Thread类创建线程类
步骤
(1)定义Thread类的子类,并重写run()方法
(2)创建Thread子类的实例
(3)调用start()方法启动线程
例子:
public class myThread extends Thread()
{
private int i;
//重写run方法
public void run()
{
for(;i<100;i++)
{
System.out.println(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 MyThread().start();
new MyThread().start();
}
}
}
}
2.实现Runnable接口创建线程类
步骤:
(1)定义Runnable接口的实现类,并重写run()方法
(2)创建Runnable实现类的实例,并以此实例为Thread的target来创建Thread对象
(3)调用start()方法启动线程
实例
public class MyThread implements Runnable {
private int i;
public void run() {
for(;i<100;i++){
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){
MyThread st = new MyThread();
new Thread(st,"Thread1").start();
new Thread(st,"Thread2").start();
}
}
}
}
3.两者区别
(1)使用继承Thread类的方法创建线程,多个线程间无法共享线程类的实例变量,而且不能再继承其他父类
(2)使用实现Runnable接口的方法创建线程,多个线程间可以共享线程类的实例变量,而且可以再继承其他父类