java被禁用在哪设置_java – 线程因线程调度而被禁用.那是什么意思?

当我通过Javadoc for CountDownLatch时,我在await方法的文档中遇到了一行.

If the current count is greater than zero then the current thread

becomes disabled for thread scheduling purposes and lies dormant

为了线程调度的目的,当前线程的含义是什么?

解决方法:

在给定的系统上,只有固定数量的线程可以同时实际执行(您受到机器中核心数量的限制.)当运行的线程多于核心时,线程调度程序将循环以某种方式通过线程,给每个CPU一点时间.

但是,在某些情况下,在CPU上给出一个线程时间是没有意义的.例如,如果一个线程获得一个总计大于零的倒计时锁存器,则该线程被卡住,等待其他线程也获取该锁存器.因此,让该线程有任何CPU时间没有任何意义,因为线程只是坐着等待其他线程.因此,通常,调度程序甚至不会尝试为线程提供任何CPU时间,而是优先安排其他仍然可以取得进展的线程.一旦有足够的线程获取倒计时锁存器,则以这种方式阻塞的所有线程将被放回调度程序以供进一步考虑.

换句话说,线程停止运行,并且调度程序将智能地不浪费时间尝试运行它直到锁存器准备就绪.

希望这可以帮助!

标签:java,multithreading

来源: https://codeday.me/bug/20190725/1529809.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值