Runnable
实现Runnable
package xc;
public class MyRunnable implements Runnable{
/**
* 相当于写好了一个用于给线程执行的任务
*/
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("run"+i);
}
}
}
主方法进行对Myrunnable的执行
package xc;
public class Main {
/**
*多线程技术
*/
public static void main(String[] args) {
//实现一个任务
// 1.创建任务的对象
MyRunnable m = new MyRunnable();
// 2.创建一个线程,并分配给任务(对象)
Thread t = new Thread(m);
// 3.执行任务
t.start();
for (int i = 0; i < 10; i++) {
System.out.println("Main"+i);
}
}
}
实现Runnable与继承Thread有如下的优势
- 通过创建任务给线程分配的方式实现多线程,更适合的多个线程执行相同任务的情况(比如,有相同任务,交给多个线程即可)
- 可以避免单继承带来的局限性
- 任务与线程分离,提高了程序的健壮性
- 后续的线程池技术,只接受Runnable类型的任务,不接受Thread。