没有合适的资源?快使用搜索试试~ 我知道了~
Java实现多线程的四种方式 1、继承Thread类 2、实现Runnable接口 3、使用Future Task 4、使用Executor框架 继承Thread类和实现Runnable接口是最基本的方式,但有一个共同的缺点:没有返回值。而Future Task解决了这个问题。Executor是JDK提供的一个多线程框架。 Java8创建一个新的执行线程有两种方法: 1、一种是将一个类声明为Thread的子类。这个子类应该重写run 类的方法Thread。然后可以分配并启动子类的实例。 2、另一种创建一个线程是声明实现类Runnable接口。那个类然后实现了run方法。然后可以分配类的实例,在
资源详情
资源评论
资源推荐
Java核心技术之多线程的实现核心技术之多线程的实现
Java实现多线程的四种方式实现多线程的四种方式
1、继承Thread类
2、实现Runnable接口
3、使用Future Task
4、使用Executor框架
继承Thread类和实现Runnable接口是最基本的方式,但有一个共同的缺点:没有返回值。而Future Task解决了这个问题。
Executor是JDK提供的一个多线程框架。
Java8创建一个新的执行线程有两种方法:创建一个新的执行线程有两种方法:
1、一种是将一个类声明为Thread的子类。这个子类应该重写run 类的方法Thread。然后可以分配并启动子类的实例。
2、另一种创建一个线程是声明实现类Runnable接口。那个类然后实现了run方法。然后可以分配类的实例,在创建Thread时
作为参数传递,并启动。
注意:使用继承Thread类创建线程,最大的局限就是不能多继承,所以为了支持多继承,可以采用实现Runnable接口的方
式。
继承继承Thread类实现独立线程单词抄写类实现独立线程单词抄写
模拟一个业务场景:
先来看第一种实现方式:继承Thread类,重写run方法的方式。
下面通过程序来模拟小明抄写单词的任务。小编觉得抄写次数100有点多,为了减轻小明的工作量,下面代码用的都是抄写10
次。
1、定义Punishment.java类,存储要抄写的单词,以及剩余抄写次数。
package com.JavaCoding.ManyThread;
import lombok.Data;
@Data
public class Punishment {
private int leftCopyCount;
private String wordToCopy;
public Punishment(int leftCopyCount, String wordToCopy) {
this.leftCopyCount = leftCopyCount; //剩余抄写次数
this.wordToCopy = wordToCopy; //要抄写的单词
}
}
2、定义Student.java类,引用Punishment,实现抄写单词的copyWord方法。
package com.JavaCoding.ManyThread_Thread;
import com.JavaCoding.ManyThread.Punishment;
//1、继承Thread类
public class Student extends Thread {
private String name;
private Punishment punishment;
public Student(String name, Punishment punishment) {
//2、调用Thread构造方法,设置threadname
super(name);
this.name = name;
this.punishment = punishment;
}
public void copyWord(){
weixin_38631225
- 粉丝: 5
- 资源: 909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0