我的应用程序中有两个线程(比如线程T1和T2)。一个线程必须生成数据(为了容易,比如数字1-10),另一个线程(T2)负责显示由T1生成的数据。 但它必须以特定的方式工作,就像T1生成数字1时,它必须将句柄委托给T2(可能通过进入等待状态)来显示数字。一旦T2显示数字,则只有T1线程应该再次启动以生成下一个数字/数据。一旦它生成下一个数字,它必须转到等待,然后T2将显示新生成的值,一旦完成它将返回等待状态,T1将再次启动。以下是我想要实现的目标: T1 - >生成1 T2 - >显示1 T1 - >生成2 T2 - >显示2 .....等等 实际上它是我的情况下的一些元数据而不是数字。但我指定的数字只是为了便于理解我的问题。我尝试过使用join&等等,但如果我使用T1.join(),它会使我的T1线程首先完成整个数据生成部分,然后只有T2线程开始工作,这不是我想要的。 [编辑] 我同意我的上述逻辑胜过线程的目的。实际上我在接受采访时被问到这个问题。我尝试用BlockingQueue解释他这样做,但他似乎对我的回复不感兴趣。所以我想在不使用BlockingQueue的情况下尝试实现它,仅仅是为了我的学习经历。