Java学习——多线程

发布时间:2024年01月23日

多线程:让程序同时做多件事情

线程:线程是操作系统能够进行运行的最小单位,它被包含在进程之中,是进程中实际运作单位

进程:进程是程序的基本执行实体

应用场景:软件中的耗时操作、加载大量资源文件、拷贝迁移大文件

并发和并行:

并发:在同一时刻,有多个指令在单个CPU上交替执行

并行:在同一时刻有多个指令在多个CPU上同时执行

多线程的实现方式:

(1)继承Thread类的方式进行实现:编程比较简单,可以直接使用Thread类中的方法,可扩展性较差,不能继承其他的类

1.自己定义一个类继承Thread

2.重写run方法

3.创建子类对象,并启动线程

(2)实现Runnable接口的方式进行实现:编程比较简单,可以直接使用Thread类中的方法,可扩展性较差,不能继承其他的类

1.自定义一个类,实现Runnable接口

2.重写里面的run方法

3.创建此类的对象

4.创建一个Thread对象,并启动线程

(3)利用Callable接口和Future接口方式实现:扩展性强,实现该类接口的同时还可以继承其他的类,但是编程相对复杂,不能直接使用Thread类中的方法

可以获取到多线程运行的结果

1.创建一个类实现Callable接口

2.重写call(是有返回值的,表示多线程运行的结果)

3.创建该类的对象(表示多线程要执行的任务)

4.创建Future对象(管理多线程运行的结果)

5.创建Thread类对象,并启动(表示线程)

多线程中的常见成员方法:

方法名称说明
String getName()返回此线程的名称
void setName(String name)设置线程的名称
static Thread currentThread()获取当前线程的对象
static void sleep(long time)让线程休眠指定的时间,单位为毫秒
setPrioirty(int newPriority)设置线程的优先级
final int getPriority()获取线程的优先级
final void setDaemon(boolean on)设置守护线程
public static void yield()出让线程/礼让线程
public static void join()插入线程/插队线程

当其他的非守护线程执行完毕后,守护线程会陆续结束

线程的生命周期:

线程的安全问题:

?

文章来源:https://blog.csdn.net/m0_50460160/article/details/135726102
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。