Java学习12.20——多线程

本文详细解释了并行与并发的概念及其区别,并介绍了进程与线程的基础知识,包括线程的创建方式及线程同步的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

并行与并发

并行:指两个或多个事件在同一时刻发生(同时发生

并发:指两个或多个事件在同一时间段发生

进程与线程

进程

进程是资源分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配cpu时间,程序开始真正的运行,一个应用程序可以同时运行多个进程。创建——运行——消亡。

线程

线程是一条执行路径,是程序执行的最小单位,是进程内部的一个独立执行单元,一个进程可以同时并发多个线程,线程共享进程的所有资源,每个线程都有自己的堆栈和局部变量。

创建线程方式

1)自定义类继承Thread类,重写run方法,无返回值

2)自定义类实现Runnable接口,重写run方法,无返回值

3)自定义类实现callable接口,重写call方法,有返回值

区别

继承Thread类只能继承一个类,受限制;而接口可以多实现,相对来说限制较小

线程的常用方法

线程的同步

对多条操作共享数据的语句,让一个线程都执行完,执行过程中其他线程不可以参与执行。

1)同步代码块

synchronized(对象){

        //需要被同步的代码

}

2)synchronized还可以放在方法的声明中,表示整个方法为同步方法

public synchronized void show(String name){

}

run和start

start()方法来启动线程,真正实现了多线程运行,直接继续执行以下代码(这时无需等待run方法体代码执行完毕),start是真正调用底层的代码来创建thread,并从底层调用run()方法,执行我们自定义的任务。

run()方法当作普通方法的方式调用,程序还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行以下代码,而如果直接用Run方法,这只是调用一个方法而已,程序中依然只有主线程--这一个线程,其程序执行路径还是只有一条,这样就没有达到写线程的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值