老师如何解决线程优先级的问题啊?
来源:7-8 wait相关问题

96年的nash
2019-10-12
如果这些线程之间有相应的逻辑关系,以及对执行顺序要求很高,只能通过串行的方式解决了吗?优先级高的线程也不一定会优先执行,那么设置优先级的意义又在哪儿呢?
写回答
1回答
-
是这样的,优先级虽然不能保证严格优先执行,但是毕竟还是有倾向性的,如果不严格要求一个比另一个先执行,那么优先级不会带来太大的问题。如果严格要求执行顺序,那么是不能依赖优先级的,不过可以用信号量、CountDownLatch等顺序控制工具类来实现对顺序的控制,本质都是串行的。
你想啊,如果两个任务是并行的(同时开始的),但是CPU的切换又不受到我们控制,那我们又如何能严格保证他们的执行完成顺序呢?我们是没办法保证的,所以只能用串行的办法。但是这种串行,并不是第一个任务完全结束之后,第二个才开始,它们是可以一起开始的,但是在关键节点(依赖执行顺序的时候),必须等待。
012019-10-12
相似问题