线程和进程(持续更新和补充)

本文详细介绍了进程和线程的概念,其中进程是内存中的应用程序,线程则是进程中的执行路径,二者共享内存空间。线程调度包括分时调度和抢占式调度,前者平均分配资源,后者优先级高的线程优先执行。同步和异步分别代表了排队执行和并发执行的两种方式。虽然并发不能提升程序运行速度,但能提高CPU使用效率。并行则指在同一时刻发生的事件,实现难度较高。理解这些概念有助于优化多线程程序设计。
摘要由CSDN通过智能技术生成

进程

指内存中的应用程序,每个进程都有独立的内存空间。(但是很多软件是多进程的,每个进程有自己的堆栈,且互不共享)

  • 既可以同时播放音乐 又可以 同时接受输入的软件

线程

  • 进程中的一个执行路径(一个进程中至少有一个线程),共享一个内存空间,线程之间可以自由切换(让一个休息,一个继续),并发执行。【无线程的进程就是即将结束的进程】
  • 线程实际上是在进程之内的进一步划分,一个进程启动后,内部的若干执行路径

线程调度

分时调度

轮流使用,平均分配
(合理的交替执行任务)

抢占式调度

优先让优先级高的线程使用CPU,如果线程的优先级相同,那么随机选择一个线程,java使用的就是抢占式调度。 (实际上: CPU中使用抢占式调度时是在多个线程中高速切换的,某时刻而言,对于CPU的一个核心,只能执行一个线程。)
实际上,多线程程序并不能提高程序运行速度,但能提高程序运行效率,让CPU使用率更高。(只有一个核心的情况下,五件事情来回切换完成和五件事情排队完成没有速度上的区别)
优先级越高,抢占时间片的概率越大,执行该线程的概率越大。

同步

排队执行,效率低但是安全

异步

同时执行,效率高但数据不安全
例如:一个线程修改了数据大小,本来一个条件

并发

两个或多个事件在同一个时间段内发生 (比如说 10 秒内的并发事件)【容易实现】

并行

两个或多个时间在同一个时刻发生(很难实现)

中断

一个线程的中断与否,应该由线程自身决定,线程启动以后 它的一生就被安排好了,内存占用和释放应该在内部完成,不应该从外部关闭或者中断。线程可以标记某个属性,然后在某个时刻借助属性抛出异常,然后程序员处理异常来引起中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值