多线程的创建方式---继承Thread和实现Runnable

继承Thread类创建多线程

 1 package cn.ftf.thread;
 2 /**
 3  * 多线程实现方式一 继承Thread实现多线程,继承Thread,重写run方法
 4  * @author 房廷飞
 5  *
 6  */
 7 public class StartThread extends Thread{    //对象继承Thread
 8     public static void main(String[] args) {
 9         StartThread st=new StartThread();  //实例化对象
10         st.start();  //通过子对象的start方法启动多线程
11
12         for(int i=0;i<20;i++) {
13             System.out.println("一边coding");
14         }
15     }
16     public void run() {  //重写对象的run方法
17         for(int i=0;i<20;i++) {
18             System.out.println("一边听歌");
19         }
20     }
21 }

实现Runnable接口创建多线程

 1 package cn.ftf.thread;
 2 /**
 3  * 实现多线程方式二 :实现Runnable,重写run方法
 4  * 避免单继承局限性,方便共享资源
 5  * @author 房廷飞
 6  *
 7  */
 8 public class StartRun implements Runnable{
 9
10     public static void main(String[] args) {
11         /*
12         //实现方法
13         StartRun st=new StartRun();    //创建实现类对象
14         Thread t=new Thread(st);     //创建代理类对象
15         t.start();      //启动
16         */
17
18         //或简洁写,匿名,合三为一
19         new Thread(new StartRun()).start();
20
21         for(int i=0;i<20;i++) {
22             System.out.println("一边coding");
23     }
24 }
25     @Override
26     public void run() {
27         for(int i=0;i<20;i++) {
28             System.out.println("一边听歌");
29         }
30
31     }
32
33 }

实现Runnable接口相对于继承Thread类来说,适合多个相同线程处理同一个资源(如抢票)的情况,可以避免由Java的单继承带来的局限性。

实际应用中,使用实现runnable接口的方式创建多线程的情况要比继承Thread类更常见

原文地址:https://www.cnblogs.com/fangtingfei/p/11247510.html

时间: 2024-10-05 05:50:29

多线程的创建方式---继承Thread和实现Runnable的相关文章

java中的线程问题(三)——继承Thread VS 实现Runnable的区别

从java的设计来看,通过继承Thread或者实现Runnable接口来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thread类本身就实现了Runnable接口,如果一定要说它们有什么区别,总结几点:     用实现Runnable接口的特点 1.用实现Runnable接口的方法创建对象可以避免java单继承机制带来的局限: 2.用实现Runnable接口的方法,可以实现多个线程共享同一段代码(数据): 因此建议大家如果你的程序有同步逻辑需求,则使用Runnable的方法来创建线程.

JAVA学习第二十二课(多线程(二))- (多线程的创建方式一 :继承Thread类)

线程是程序中的执行线程.Java 虚拟机允许应用程序并发地运行多个执行线程. 创建新执行线程有两种方法. 一种方法是将类声明为 Thread 的子类.该子类应重写Thread 类的run 方法.另一种方法是声明实现 Runnable 接口的类.该类然后实现run 方法. 创建线程方式一:继承Thread类 一.创建线程的步骤: 1.定义一个类继承Thread类 2.覆盖Thread中的run()方法 3.直接创建Thread类子类的对象 4.调用start方法开启线程,并调用线程的任务run方法

多线程三:显示主线程执行的效果-第一种继承方式 继承Thread类

首先看下一个最简单的例子 继承Thread类 覆盖run方法

多线程编程--创建线程之Thread VS Runnable

前面写过一篇基础的创建多线程的博文: 那么本篇博文主要来对比一下这两种创建线程的区别. 继承Thread类: 还拿上篇博客的例子来说: 四个线程各自卖各自的票,说明四个线程之间没有共享,是独立的线程.每个线程平等,没有优先级关系.这三个线程不是一次交替执行,而是三个线程同时被执行的情况下,有的线程被分配时间片的机会多,票被提前卖完,有的线程被分配的时间片的机会少,票迟一些卖完. 故,利用扩展Thread类创建的多个线程,虽然执行的是相同的代码,但彼此相互独立,且各自拥有自己的资源,互不干扰. 分

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

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

Java多线程实现1,继承Thread类

Java可以通过继承Thread类实现多线程,具体步骤如下: 定义一个新的类继承自Thread类. 在新的类中实现run()方法,此方法即为新线程的运行程序代码. 创建一个新的类的对象,并调用对象的start()方法. Thread存放在java.lang类库里,但并不需加载java.lang类库,因为它会自动加载.此外,run()方法是定义在Thread类里的一个方法,把线程的程序代码编写在run()方法内,事实上所做的就是覆盖的操作.下面是用此方式实现多线程的一个例子: public cla

多线程的创建方式

一:进程与线程     进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程.(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小.(线程是cpu调度的最小单位) 线程和进程一样分为五个阶段:创建.就绪.运行.阻塞.终止. 多进程是指操作系统能同时运行多个任务(程序). 多线程是指在同一程序中有多个顺序流在执行. 2:实现多线程有三种方法:一种是继续Thread类,另外

java多线程的创建方式

根据Thread类中的run方法 public void run() { if (this.target == null) return; this.target.run(); } 可以知道运行多线程代码有两种方式,一种是运行Thread类run方法中的代码,一种是运行target中的run代码. 方法一:运行Thread类run方法中的代码 Thread thread1=new Thread(){ @Override public void run() { while(true){ try {

java 多线程 继承Thread和实现Runnable的区别

1)继承Thread: public class ThreadTest extends Thread { private int count; private String name; public ThreadTest(int count,String name){ this.count = count; this.name = name; } public void run() { while(count>0) { System.out.println(name+"买票 "+