多线程实现方式二:实现Runnable接口 * 1.定义一个线程人物类MyRunnable实现Runnable接口,重写run()方法 * 2.创建MyRunnable人物对象 * 3.把MyRunnable人物对象交给Thread处理 * 4.调用线程对象的start()方法启动线程 * Thread的构造器 * public Thread(String name) 可以为当前线程指定名称 * public Thread(Runnable target) 封装Runnable对象成为线程对象 * public Thread(Runnable target String name)封装Runnable对象成为线程对象,并指定名称 * * 优缺点: * 优点:线程任务类只是实现接口,可以继续继承类和实现接口,扩展性强 * 缺点:编程多一层对象包装,如果线程执行有执行,结果是不可以直接返回的
/* * 目标:学会线程创建方式二,理解优缺点 * */ public class ThreadDemo2 { public static void main(String[] args) { //3.创建一个任务对象 Runnable target = new MyRunnable(); //把任务对象交给线程对象(Thread)处理 Thread t = new Thread(target); //5.启动对象 t.start(); for (int i = 0; i <10 ; i++) { System.out.println("主线程执行输出:"+i); } } } //1.定义一个线程人物类,实现Runnable接口 class MyRunnable implements Runnable{ /* * 2.重写run方法,定义线程执行任务 * */ @Override public void run() { for (int i = 0; i <10 ; i++) { System.out.println("子线程执行输出:"+i); } } }
--------------------------------------------------------------------------------------------------------------------------------
多线程实现方式二:实现Runnable接口(匿名内部类形式) * 1.可以创建Runnable的匿名内部类对象 * 交给Thread处理 * 调用线程对象的start()启动线程
/* * 目标:学会线程创建方式二,(匿名方式类实现,语法形式) * */ public class ThreadDemo2Other { public static void main(String[] args) { //3.创建一个任务对象 Runnable target = new Runnable() { @Override public void run() { for (int i = 0; i <10 ; i++) { System.out.println("子线程执行输出:"+i); } } }; //4.把任务对象交给线程对象(Thread)处理 Thread t = new Thread(target); //5.启动对象 t.start(); for (int i = 0; i <10 ; i++) { System.out.println("主线程执行输出:"+i); } } }