![]() |
1
4
任何情况下,如果您有一系列相互独立的关键部分,但您希望按顺序执行,都是适当的。 把这个想象成一个墨西哥煎饼吧,你有一队顾客,还有四个左右的工人在另一边。你不希望任何消费者超越其他人,也不希望任何工人一次服务于多个消费者。您可以在每台服务器之间创建队列,但是您知道管道是严格连续的,有时抽象不是代码中的最佳表示。 但是,如果您希望能够获得管道的某个阶段,则可能具有特殊的处理。例如,最后的收银员。如果有人来取礼品卡,他们可以跳过排队直接去收银台。该模型减少了平均等待时间/延迟,同时为其他工作人员提供了必要的锁和排序保证。 与计算中的任何事情一样,有许多方法可以达到相同的效果,但是域模型和实现模型之间的认知距离会影响代码的清晰性。因此,如果您有一个应用程序希望确保在顺序中获取下一个资源之前不释放一个资源,那么锁链是一个方便的解决方案。 最后,不要忘记Java的同步能力是严格嵌套的,你只能按照你获得的顺序释放一个锁。如果你有长而复杂的管道,那就不理想了。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 7 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 7 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 7 月前 |
![]() |
rudraraj · java中未声明最终变量 7 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 7 月前 |