线程(Thread)

什么是线程?
线程是一个程序内部的一条执行路径。
我们之前启动程序执行后,main方法的执行其实就是一条单独的执行路径。
程序在如果只有一条执行路径,那么这个程序就是单线程的程序

多线程是什么
多线程是指从软硬件是实现多条执行流程的技术。

多线程的创建
Thread类
Java是通过java.Thread 类来代表线程的
按照面对对象的思想,Thread类应该提供了实现多线程的方法。
多线程的实现方法一:
**继承Thread类 **
1.定义一个子类MyThread继承线程类java.lang.Thread,重写run方法
2.创建MyThred类的对象
3.调用线程对象start()方法启动线程(启动后还是执行run方法)
在这里插入图片描述
方式的优缺点
优点:代码简单
缺点:线程类已经继承Thread类,无法继承其他类,不利于扩张
注意事项
为什么不直接调用run方法,而是调用start启动线程
直接调用run方法会当成普通方法执行。此时相当于还是一个单 线程执行。
只右调用start方法才是启动一个新的线程执行。

方式二 实现Runnable接口
多线程的实现方案二:实现Runnablie接口
1.定义一个线程任务类MyRunnable实现Runnable接口,重写run()方法
2.创建MyRunnable任务对象
3.把MyRunnable 任务对像交给Thread处理
4.调用线程对象的strat()方法启动线程

Thread的构造器
public Thread(String name) 可以当前线程指定名字
public Thread( Runnable target) 封装 Runnable对象成为线程对象
public Thread( Runnable target String name) 封装Runnable对象成为线程对象,并指定线程名称

在这里插入图片描述
方式二优缺点
优点:线程任务类只是实现接口,可以继承继承类和实现接口,扩展性强
缺点:
编程多一层对象包装,如果线程有执行结果是不可以被返回的

方法三实现Callable接口和FutuerTask类
JDK5.0新增
1.得到任务对象
定义类实现Callable接口 重写call方法,封装要做的事情。
用FutureTask把Callable对象封装成线称任务对象
2.把线程任务对象交给Thread处理。
3.调用Thread的start方法启动线程,执行任务
4.线程执行完毕后,通过FutuerTask的get方法取获取任务执行的结果。

方式三的优缺点:
优点:线程任务类只是实现接口,可以继承基础类实现接口,扩展性更强
可以在线程执行完毕后获取执行结果
缺点:
编程相对复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值