创建线程的第二种方式------实现Runnable接口的方式

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-11-29 04:18:06

创建线程的第二种方式------实现Runnable接口的方式的相关文章

JAVA线程应用Thread:创建线程的第二种方式:实现Runnable接口

/* 需求:卖票小程序! 思路:实现多个窗口(线程)同时售票. 步骤:1,定义类实现Runnable接口. 2,覆盖Runnable接口中的run方法. 3,通过Thread类创建线程对象. 4,将Runnable接口的子类对象作为实际参数传入Thread类的构造函数当中. 5,调用Thread类的start方法开启线程并调用Runnabke接口的run方法. */ 代码如下 class Ticket implements Runnable//extends Thread//实现Runnable

Java创建线程的第二种方式:实现runable接口

/*需求:简单的卖票程序多个窗口买票 创建线程的第二种方式:实现runable接口 *//*步骤1.定义类实现Runable接口2.覆盖Runable接口中的run方法    将线程要运行的代码存放在该run方法中 3.通过Thread类建立线程对象4.将Runable接口的子类对象作为实际参数传递给Thread类的构造函数  为什么要将Runable接口的子类对象传递给Thread的构造函数.  因为,自定义的run方法所属的对象是Runable接口的子类对象  所以要让线程去指定对象的Run

java 创建线程的三种方法Callable,Runnable,Thread比较及用法

转自:http://www.chinaitlab.com/Java/line/942440.html 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互.一般有三种方法,Thread,Runnable,Callable. Runnable和Callable的区别是, (1)Callable规定的方法是call(),Runnable规定的方法是run(). (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得 (3)call方法可以抛出异常,run方法

创建线程的两种方法

第一种:继承Thread类 子类覆写父类的run方法,将线程代码写在run()中. 建立子类对象,些时线程也被创建了. 通过start方法启动线程. 第二种:实现Runnable接口 子类覆盖接口的run方法,将线程代码写在run()中. 通过Thread类创建线程,并将实现Runnable接口的子类对象作为参数传递给Thread类的构造函数. Thread对象调用start方法启动线程. 两者的比较: 继承Thread类,相对简单,但因为单继承的局限性,同份资源不共享,而不建议使用:而实现Ru

java创建线程的三种方式及其对比

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,run方法的方

java创建线程的三种方式及其对照

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类.并重写该类的run方法,该run方法的方法体就代表了线程要完毕的任务.因此把run()方法称为运行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法.run方法的方

创建线程的两种方式比较Thread VS Runnable

1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 1 public class MyThread extends Thread{ 2 @Override 3 public void run() { 4 // TODO Auto-generated method stub 5 6 } 7 } 8 //线程使用 9 MyThread mt = new MyThread(); //创建线程 10 mt.start(); //启动线程 另外一种方式是实现Runnabl

创建线程的两种方式

首先我们需要知道什么是线程:是程序执行流的最小单元,包括就绪.阻塞和运行三种基本状态. 举个简单的例子:我们把生活中的两件事吃饭和写作业当作是两个线程,当你正在写作业的时候,爸妈叫你吃饭,你就直接去了,等吃完饭回来后再接着写作业.这就是相当于两个线程其中一个从运行状态转入就绪状态,另一个线程从就绪状态转入运行状态. 创建线程包括继承Thread类和实现Runnable接口两种方式(JDK5.0以后还包括了实现Callable等方式来实现线程,这里不做介绍,感兴趣的小伙伴可以自己查资料),下面介绍

Java并发编程-创建线程的两种方式及区别

转载请注明:http://blog.csdn.net/UniKylin/article/details/45016117 1.线程和进程的区别 并行:是多个任务在同一时间同时执行,例如多核计算机同时计算的任务可以理解为并行 并发:从微观上看是多个任务抢占一个CPU从而执行自己的任务,轮流执行任务,但是如果遇到资源冲突的时候并没有从根本提高执行效率.但是提高了CPU的使用效率. 前段时间在GitHub上的一幅图可以很好的阐述上面的概念非常形象 2.Java中创建线程的两种方式 1.第一种方式:直接