首页 > 编程知识 正文

什么是线程调度机,线程调度的主要任务是什么

时间:2023-05-04 03:50:23 阅读:282553 作者:3998

计算机通常只有一个CPU,在任意时刻只能执行一条机器指令,每个线程只有获得CPU的使用权才能执行指令。所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得CPU的使用权,分别执行各自的任务。在线程池中,会有多个处于就绪状态的线程在等待CPU,JAVA虚拟机的一项任务就是负责线程的调度,线程调度是指按照特定机制为多个线程分配CPU的使用权。

线程调度有两种:
1.分时调度
分时调度就是所有线程轮流拥有(使用)cpu的使用权,平均分配每个线程占用cpu的时间
2.抢占式调度
抢占式调度就是优先让优先级高的线程使用cpu,如果线程的优先级相同,则会随机选择一个,所以谁的优先级高,谁抢夺cpu的几率就越大,从而优先级高的占用cpu的时间会更长,Java为抢占式调度.
抢占式调度使cpu会在多个进程中、多个线程中来回跳转,其速度非常快:1/n毫秒,
比方说现在的cpu跳转到迅雷这个进程中,正在执行迅雷中的3个下载任务,如果cpu分配给迅雷这个进程的时间为7毫秒,下载寻龙诀这个任务的线程优先等级比其他两个任务的优先等级要高,则寻龙诀线程所占用的cpu时间则为3秒,其它两个任务的线程则平均为2秒.
多线程不会增加CPU的速度,但会增加CPU的效率,现在的程序时间大多花在读取数据上,真正的计算工作花时间还是相对少的,因此CPU很大时间表现都很闲,就像挖土效率高,运土效率低。多线程就是要充分利用它的挖土效率,多几个运土车而尽量减少挖土机的休息时间。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。