线程∶线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程
图:
线程调度
分时调度:所有线程轮流使用CPU的使用校,平均分配每个线程占用CPU 的时间。
抢占式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性) , Java使用的为抢占式调度。
抢占式调度使cpu会在多个进程中、多个线程中来回跳转,其速度非常快:1/n毫秒,
比方说现在的cpu跳转到迅雷这个进程中,正在执行迅雷中的3个下载任务,如果cpu分配给迅雷这个进程的时间为7毫秒,下载寻龙诀这个任务的线程优先等级比其他两个任务的优先等级要高,则寻龙诀线程所占用的cpu时间则为3秒,其它两个任务的线程则平均为2秒.
多线程不会增加CPU的速度,但会增加CPU的效率,现在的程序时间大多花在读取数据上,真正的计算工作花时间还是相对少的,因此CPU很大时间表现都很闲,就像挖土效率高,运土效率低。多线程就是要充分利用它的挖土效率,多几个运土车而尽量减少挖土机的休息时间
图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)