Java 线程创建方法之一——实现Runnable接口、匿名内部类写法
线程的创建方式——实现Runnable接口
多线程是很有用的,我们在进程中创建线程的方式有三种:
- 直接定义一个类继承线程类Thread。重写run()方法,创建线程对象
调用线程对象的start()方法启动线程。 - 定义一个饯程任务类实现Runnable接口,重写run()方法, 创建践程任务对象,把
线程任务对象包装成线程对象,调用线程对 象的start()方法启动线程。 - 实现Callable接口(拓展)。
Thread 的构造器
public Thread(){ }
public Thread(String name){ }
public Thread(Runnable target){ }
public Thread(Runnable target,String name){ }
实现Runnable接口的方式。
- 创建一个线程任务类实现Runnable接口。
- 重写run()方法。
- 创建一个线程任务对象。
- 把线程任务对象包装成线程对象
调用线程对象的start()方法启动线程。
public class ThreadDemo2 {
public static void main(String[] args) {
//3.创建一个线程任务对象(不是线程对象,只是执行线程任务的)
Runnable target = new MyRunnable();
//4.把线程任务对象包装成线程
//Thread t1 = new Thread(target);
Thread t2 = new Thread(target,"线程1号");
//5.调用start方法
t2.start();
//主线程加个任务
for (int i = 0; i < 10 ;i++){
System.out.println(Thread.currentThread().getName()+"=>"+i);
}
}
}
//1.创建一个线程任务类实现runnable接口
class MyRunnable implements Runnable{//2.重写run方法
@Override
public void run() {
for (int i = 0 ;i < 10 ; i++){
System.out.println(Thread.currentThread().getName()+"=>"+i);
}
}
}
优点:
- 线程任务类只是实现了Runnable接口,可以继续继承其他类,而且可以继续实现其他的功能
- 同一个线程任务对象可以被包装成多个线程对象
- 适合多个相同的程序代码的线程去共享同一个资源
- 实现解棍操作,代码可以被多个线程共享,线程任务代码和线程独立。
匿名内部类写法
public class ThreadDemo3 {
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName() + "=>" + i);
}
}
});
t.start();
//主线程加个任务
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName() + "=>" + i);
}
}
}
还没有评论,来说两句吧...