package cn.itcast.demo16.Demo07.Runnable; /** * @author newcityman * @date 2019/7/22 - 23:17 */public class RunnableImpl implements Runnable { @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getName()+"---->"+i); } }}
package cn.itcast.demo16.Demo07.Runnable; /** * @author newcityman * @date 2019/7/22 - 23:17 */public class RunnableImpl2 implements Runnable { @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println("hello world---->"+i); } }}
package cn.itcast.demo16.Demo07.Runnable; /** * @author newcityman * @date 2019/7/22 - 23:18 * 创建多线程的第二种方式:实现Runnable接口 * java.lang.Runnable * Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定一个称为run的无参方法 * java.lang.Thread类的构造方法 * * * 实现步骤: * 1、创建一个Runnable接口的实现类 * 2、在实现类中重写Runnable接口的run方法,设置线程任务 * 3、创建一个Runnable实现类的对象 * 4、创建一个Thread类对象,其构造方法的参数传递Runnable实现类的对象 * 5、调用Thread类中的start()方法 * * 实现Runnable接口创建多线程的优点 * 1、避免单继承的局限性 * 一个类只能继承一个类,类继承了Thread类就不能够继承其他的类了 * 实现Runnable接口,还可以继承其他的类,实现其他的接口 * 2、增强了程序的扩展性,降低了程序的耦合性(解耦) * 实现Runnable接口的方式,吧设置线程任务和开启线程进行了分离(解耦) * 实现类中,重写了run方法,用来设置线程任务 * 创建Thread类对象,调用Start方法,用来开启新线程 */public class Demo01Runnable { public static void main(String[] args) { RunnableImpl impl = new RunnableImpl(); Thread t = new Thread(impl); t.start(); System.out.println("========================="); new Thread(new RunnableImpl2()).start(); for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getName()+"---->"+i); } }}
原文地址:https://www.cnblogs.com/newcityboy/p/11229250.html
时间: 2024-09-28 23:02:00