首页
人工智能
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
网络运维
创建线程的四种方法
常见问题
2022-08-26
通过继承Thread类来创建并启动多线程的一般步骤如下
1】d定义Thread类的子类,并重写该类的run()
方法
,该
方法
的
方法
体就是线程需要完成的任务,run()
方法
也称为线程执行体。
2】创建Thread子类的实例,也就是创建了线程对象
3】启动线程,即
调用
线程的start()
方法
实现Runnable接口创建线程_____
通过实现Runnable接口创建并启动线程一般步骤如下:
1】定义Runnable接口的实现类,一样要重写run()
方法
,这个run()
方法
和Thread中的run()
方法
一样是线程的执行体
2】创建Runnable实现类的实例,并用这个实例作为Thread的t
ara
et来创建Thread对象,这个Thread对象才是直正的线程对象
3】第三部依然是通过
调用
线程对象的start()
方法
来启动线程。
1】创建Callable接口的实现类,并实现call()
方法
,然后创建该实现类的实例(从java8开始可以直接使用Lambda表达式创建Callable对象)。
2】使用FutureTask类来包装Callable对象,该FutureTask对象封装了Callable对象的call()
方法
的返回值
3】使用FufureTask对象作为Thread对象的t
ara
et创建并启动线程(因为FutureTask实现了Runnable接口)
4】
调用
FutureTask对象的get()
方法
来获得子线程执行结束后的返回值
4
Executor接口中之定义了
一个
方法
execute(Runnable command),该
方法
接收
一个
Runable实例,它用来执行
一个
任务,任务即
一个
实现了Runnable接口的类。ExecutorService接口继承自Executor接口,它提供了更丰富的实现多线程的
方法
,比如
ExecutorService提供了
关闭
自己的
方法
,以及可为跟踪
一个
或多个异步任务执行状况而
生成
Future的
方法
。可以
调用
ExecutorService的shutdown()
方法
来平滑地
关闭
ExecutorService,
调用
该
方法
后,将导致ExecutorService停止接受任何新的任务且等待已经提交的任务执行完成(已经提交的任务会分两类;一类是已经在执行的,另一类是还没有开始执行的),当所有已经提交的任务执行完些后将会
关闭
ExecutorService,因此我们一般用该接口来实现和管理多线程。
四种线程的区别
实现Runnable和实现Callable接口的方式基本相同,不过是后者执行call()
方法
有返回值,后者线程执行体run()
方法
无返回值,因此可以把这两种方式归为一种这种方式与继承Thread类的
方法
之
间的
差别如下:
1、线程只是实现Runnable或实现Callable接口,还可以继承其他类。
2、这种方式下,多个线程可以共享
一个
target对象,非常适合多线程处理同一份资源的情形。
件、原理
模拟电 3、但是编程稍微复杂,如果需要访问当前线程,必须
调用
Thread.currentThread()
方法
。
4、继承Thread类的线程类不能再继承其他
父类
(Java单继承决定)。
5、前三种的线程如果创建
关闭
频繁会消耗系统资源影响
性能
,而使用线程池可以不用线程的时候放回线程池,用的时候再从线程池取,项目开发中主要使用线程池。
jvm
jvm
相关文章
使用Nvdia显卡驱动自带的录屏功能录制游戏
显卡天梯图2024最新版 显卡性能天梯图2024最新排行榜
显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办 初始化电脑时出现问题解决方法
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置 todesk远程开机教程
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装 油猴谷歌插件安装教程
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
16g虚拟内存设置多少合适 16g虚拟内存最佳设置方法
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...