创建Thread的子类
创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:
public class MyThread extends Thread { |
|
System.out.println( "MyThread running" ); |
可以用如下方式创建并运行上述Thread子类
1 |
MyThread myThread = new MyThread(); |
一旦线程启动后start方法就会立即返回,而不会等待到run方法执行完毕才返回。就好像run方法是在另外一个cpu上执行一样。当run方法执行后,将会打印出字符串MyThread running。
你也可以如下创建一个Thread的匿名子类:
1 |
Thread thread = new Thread(){ |
3 |
System.out.println( "Thread Running" ); |
当新的线程的run方法执行以后,计算机将会打印出字符串”Thread Running”。
实现Runnable接口
第二种编写线程执行代码的方式是新建一个实现了java.lang.Runnable接口的类的实例,实例中的方法可以被线程调用。下面给出例子:
1 |
public class MyRunnable implements Runnable { |
3 |
System.out.println( "MyRunnable running" ); |
为了使线程能够执行run()方法,需要在Thread类的构造函数中传入 MyRunnable的实例对象。示例如下:
1 |
Thread thread = new Thread( new MyRunnable()); |
当线程运行时,它将会调用实现了Runnable接口的run方法。上例中将会打印出”MyRunnable running”。
同样,也可以创建一个实现了Runnable接口的匿名类,如下所示:
1 |
Runnable myRunnable = new Runnable(){ |
3 |
System.out.println( "Runnable running" ); |
6 |
Thread thread = new Thread(myRunnable); |