多线程之实现Runnable接口及其优点

多线程之实现Runnable接口:

1.创建一个Runnable接口的实现类
2.在实现类中重写Runnable接口的run方法
3.创建一个Runnable接口实现类的对象
4.创建Thread类对象,构造方法中传参为:Runnable接口实现类的对象
5.调用Thread类中的start方法,启动多线程

打印结果(并发):

实现Runnable接口创建多线程与继承Thread类相比优点是:

1.避免了继承Thread类的单继承的局限性。
【类只能单继承,类继承了Thread类就不能继承其他的类
而实现了Runnable接口,还可以继承其他的类,实现其他的接口

2.实现Runnable接口降低了线程对象和线程任务的耦合性,增强了程序的可扩展性。
【实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离(实现解耦)
实现类中,重写了run方法来设置线程任务
创建Thread类对象,调用start方法来开启新线程
创建Thread类对象,构造方法中传递Runnable接口的实现类对象,可以传递不同的实现类(可扩展性)

3.实现Runnable接口将线程单独进行对象的封装,更符合面向对象思想。

原文地址:https://www.cnblogs.com/cdlyy/p/11564299.html

时间: 2024-08-10 16:36:37

多线程之实现Runnable接口及其优点的相关文章

2018-08-25多线程Thread类+Runnable接口+线程的6种状态

多线程: 进程:进程指正在运行的程序:确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能(进入内存运行的程序成为进程)! 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程!一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序(线程是执行单元,一个进程可以包括多个线程,一个程序可以有多个进程)! 单线程程序:若有多个任务只能依次执行(这个任务执行完毕,下一个任务开始执行)!如:去网吧上网,网吧只能让一

Java多线程:实现Runnable接口创建线程方式详解

先看例子: /**实现Runnable接口创建线程步骤: * 1.创建一个实现Runnable接口的类 * 2.重写Runnable类中抽象的run()方法 * 3.创建实现类的对象 * 4.声明Thread类,同时将实现类对象作为参数传递 * 5.用Thread类的对象调用start() */ //例子:多线程售票(暂未安全同步) class MyThread implements Runnable{ private int num = 100; public void run(){ whil

Java通过继承thread类与实现Runnable接口实现多线程的区别

Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 一.通过继承Thread类实现多线程 class MyThread extends Thread{ String name = null; int ticket = 0; public MyThread(String name){ this.name = name; } public synchronized v

实现多线程的两种方法:继承Thread类或实现Runnable接口

实现多线程的两种方法:继承Thread类或实现Runnable接口 Java中实现多线程有两种方法:继承Thread类和实现Runnable接口,在程序开发中只要是多线程,我们一般都是实现Runnable接口,原因归结为一点:实现接口比继承类要好. 多线程的第一种实现方式:继承Thread类 步骤如下 创建一个继承Thread的类(假定为A),并重写Thread的run方法 构造一个A类对象,假定为aa 调用aa的start方法.(start方法是从Thread继承过来的) 具体例子如下 pac

JAVA学习第二十三课(多线程(二))- (多线程的创建方式二 :实现Runnable接口(常用))

当一个类有父亲,但是其中的功能还希望实现线程,那么就不能采用继承Thread的方式创建线程 那么就可以通过接口的方式完成 准备扩展Demo类的功能,让其中的内容可以作为线程的任务执行 实现Runnable接口,Runnable接口中只有一个方法run 一.创建线程的第二种方法 Runnable的出现仅仅是将线程的任务进行了对象的封装 /* * 创建线程的第二种方法 * 1.定义类实现Runnable接口 * 2.覆盖接口中的fun方法,将线程的任务代码封装到run方法中 * 3.通过Thread

Java Tread多线程(1)实现Runnable接口

作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39347245 本文演示,Tread多线程实现Runnable接口,以及简单的说明为什么有这种创建线程的方法. 一.创建线程的2中方法: 1)继承Thread类实现多线程,参见我的上一篇文章:Java Tread多线程(0)一个简单的多线程实例 : 2)第二种方法就是实现Runnable接口,创建一个新线程. 二.为什么要有这两种方法创建线程呢? ①主要原因:就是方法1)不

探Java多线程Thread类和Runnable接口之间的联系

首先复习一下Java多线程实现机制,Java实现多线程方法有如下这么几种: 1.继承了(extends)Thread类 2.实现了(implements)Runnable接口 也就是说  有如下两种情况 情况1: 继承Thread类.重写其方法run() .    然后new之.调用Start()方法 1 public class TestThread 2 { 3 private int i; 4 public static void main(String[] args) 5 { 6 // T

java多线程编程中实现Runnable接口方法相对于继承Thread方法的优势

 java多线程创建方法http://blog.csdn.net/cjc211322/article/details/24999163  java创建多线程方法之间的区别http://blog.csdn.net/cjc211322/article/details/25000449 java多线程编程中实现Runnable接口方法相对于继承Thread方法的优势

java中利用继承类和Runnable接口实现多线程的区别

利用继承Thread类实现的多线程无法资源共享 如下程序 class MyThread extends Thread{ public MyThread(String name){ super(); this.name=name; } public void run(){ while(tickets==0?false:true) { tickets--; System.out.println(name+" just selt one ticket,only "+tickets+"