请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Semaphore 被丢弃的线程,是如何处理的?

【问题】【TODO】

被丢弃的线程怎么办?

是通知 gc 回收(虽然实际回收的时机是不可预测的),还是?

如果是复杂/耗时/耗资源的逻辑,要考虑到资源的回收效率。


正在回答 回答被采纳积分+3

2回答

天道酬勤ksl 2020-04-12 14:14:05

坐等老师讲解

1 回复 有任何疑惑可以回复我~
Jimin 2020-04-13 10:08:24

你好,感觉课程没太认真听啊,这里可以选择使用acquire一直等待获取许可,也可以使用tryacquire同步尝试获取许可,这两个对线程的处理影响很大,一个是一直等待直到拿到许可为止,另一个是实时返回的,根据正常逻辑处理即可,抛异常还是使用其他逻辑都是ok的,这个可以自己设计。

0 回复 有任何疑惑可以回复我~
  • 提问者 梨多情 #1
    汗!让您误解了,是我的错 0.0 ,没叙述清楚。
    我问的是:在第一个 tryacquire() 的例子中,
    tryacquire( ) 尝试获取许可的那些线程,超过并发数的部分不是失败了吗?
    那失败了的那些线程,是如何被处理的?
    回复 有任何疑惑可以回复我~ 2020-04-15 11:35:38
  • Jimin #2
    要么同时获取多个许可,要么一个许可拿不到
    回复 有任何疑惑可以回复我~ 2020-04-16 04:00:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信