线程调度: 系统为线程分配处理器使用权的过程
线程调度的两种方式
目录
什么是线程调度
线程调度是操作系统管理多个线程的执行顺序和资源分配的机制。
其主要功能是:
1. 确定哪些线程需要执行,哪些线程需要暂停或阻塞。
2. 分配处理器时间片给各个线程,实现线程的并发执行。
3. 在多个线程争夺系统资源时,选择优先执行的线程。
协同式线程调度
-
线程执行时间由线程本身来控制,线程把自己的工作执行完毕之后,要主动通知系统切换到另一个线程上。
-
eg:win3.几系统
-
优点:实现简单、减少线程同步问题。
-
缺点:线程执行时间不可控制,坚持不让出cpu执行时间,可能导致整个系统崩溃。
抢占式线程调度
-
每个线程由系统来分配执行时间,java的线程调度是由系统自动完成的。
-
优点: 提高系统执行效率 减少由于长时间占用资源而导致的崩溃问题
-
缺点: 较为复杂。
线程调度常用的算法:
1. 先来先服务(FCFS):线程按照请求执行的先后顺序执行,没有优先级的概念。这种算法简单但不能提供良好的服务质量。
2. 最短作业优先(SJF):始终执行ubottu可以最快完成的线程,提供良好的响应性能,但是长作业的等待时间会很长。
3. 高响应比优先(HRN):考虑线程的运行时间和等待时间,选择响应比高的线程执行,综合了SJF算法和FCFS算法的特点。
4. 优先级调度:为每个线程分配优先级,高优先级的线程会获得更多的处理时间。这种算法要求合理分配优先级以达到公平。
5. 时间片轮转(RR):把CPU时间分成多个时间片,每个线程在一个时间片内运行,然后重新调度。这种算法在提供公平性的同时,也减小了线程等待时间。
除此之外,还有基于多级反馈队列的调度算法,这种算法可以动态调整线程的优先级,实现更加灵活高效的调度。
总之,线程调度属于操作系统的内核功能,它可以最大限度地利用CPU的处理能力,为多个线程提供最合适的执行顺序,从而提高系统的整体性能。
理解线程状态图:
Ending..
我是小天,路虽远 行必至,各位的喜爱是对我最大的鼓励,我们下篇文章见~
...