我正在编写一个多线程应用程序,其中有一个生产者试图将一个元素添加到共享资源中。我想维护生产者在共享资源中生成元素的顺序。
例如,我的共享资源是一个 SynchronizedQueue,P1、P2、P3、P4 将按 p1、p2、p3、p4 的顺序生成一个新元素,在此期间 P5 生产者将其元素添加到队列中,所以 P1, P2、P3、P4 将等待锁定。一旦 P5 释放锁,P1-4 中的任何一个都将获得锁,因此我们松开了元素的顺序。
有没有办法维护等待锁的元素的顺序?据我了解,这是不可能的,但我想检查这是否可以通过编程方式实现。