java线程调度

线程调度: 系统为线程分配处理器使用权的过程

线程调度的两种方式

目录

什么是线程调度

协同式线程调度

抢占式线程调度

线程调度常用的算法有:


什么是线程调度

线程调度是操作系统管理多个线程的执行顺序和资源分配的机制。

其主要功能是:

1. 确定哪些线程需要执行,哪些线程需要暂停或阻塞。

2. 分配处理器时间片给各个线程,实现线程的并发执行。

3. 在多个线程争夺系统资源时,选择优先执行的线程。 

协同式线程调度

  • 线程执行时间由线程本身来控制,线程把自己的工作执行完毕之后,要主动通知系统切换到另一个线程上。 

  • eg:win3.几系统

  • 优点:实现简单、减少线程同步问题。

  • 缺点:线程执行时间不可控制,坚持不让出cpu执行时间,可能导致整个系统崩溃。

抢占式线程调度

  • 每个线程由系统来分配执行时间,java的线程调度是由系统自动完成的。

  • 优点: 提高系统执行效率 减少由于长时间占用资源而导致的崩溃问题

  • 缺点: 较为复杂。 

线程调度常用的算法:

1. 先来先服务(FCFS):线程按照请求执行的先后顺序执行,没有优先级的概念。这种算法简单但不能提供良好的服务质量。

2. 最短作业优先(SJF):始终执行ubottu可以最快完成的线程,提供良好的响应性能,但是长作业的等待时间会很长。

3. 高响应比优先(HRN):考虑线程的运行时间和等待时间,选择响应比高的线程执行,综合了SJF算法和FCFS算法的特点。

4. 优先级调度:为每个线程分配优先级,高优先级的线程会获得更多的处理时间。这种算法要求合理分配优先级以达到公平。

5. 时间片轮转(RR):把CPU时间分成多个时间片,每个线程在一个时间片内运行,然后重新调度。这种算法在提供公平性的同时,也减小了线程等待时间。

除此之外,还有基于多级反馈队列的调度算法,这种算法可以动态调整线程的优先级,实现更加灵活高效的调度。

总之,线程调度属于操作系统的内核功能,它可以最大限度地利用CPU的处理能力,为多个线程提供最合适的执行顺序,从而提高系统的整体性能。

理解线程状态图:

 

 Ending..

我是小天,路虽远 行必至,各位的喜爱是对我最大的鼓励,我们下篇文章见~

...

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值