Java 有没有办法阻止所有线程同时运行一行代码?

Java 有没有办法阻止所有线程同时运行一行代码?,java,multithreading,Java,Multithreading,我有一个程序,我想让我的线程对其他线程进行某种更新,但由于我同时启动所有线程,它们同时进行更新,这与目的背道而驰,因为它们都相互覆盖。我想要一个线程来更新一些东西,让那些东西快速使用它,然后再进行更改。有没有办法让任何线程先运行,然后让其他线程等待?感觉上我什么都做不了,因为如果我更改了thread类,那么所有线程都将执行更改,并且仍然同时执行。我也在使用GUI,所以我不能只使用线程。在每个线程的开始调用之间睡眠。我不认为任何代码都能解决这个问题,我只是想知道是否有办法阻止除一个线程之外的所有线

我有一个程序,我想让我的线程对其他线程进行某种更新,但由于我同时启动所有线程,它们同时进行更新,这与目的背道而驰,因为它们都相互覆盖。我想要一个线程来更新一些东西,让那些东西快速使用它,然后再进行更改。有没有办法让任何线程先运行,然后让其他线程等待?感觉上我什么都做不了,因为如果我更改了thread类,那么所有线程都将执行更改,并且仍然同时执行。我也在使用GUI,所以我不能只使用线程。在每个线程的开始调用之间睡眠。我不认为任何代码都能解决这个问题,我只是想知道是否有办法阻止除一个线程之外的所有线程,或者延迟每个线程同时到达同一行代码,因为它们都会更改一个变量。

为此目的,请使用同步块。当一个代码块包装在synchronized中时,只有一个线程可以访问它,其他线程等待轮到它们

synchronized(this) 
{ 
      // your line of code
} 

只需在另一个线程的末尾启动一个新线程。另外,请阅读帮助您有效管理线程任务的
RxJava
。以下是一段引语:包含足够的代码,以允许其他人重现问题。请检查
synchronized
block/method。这将有助于处理不应由多个线程并行执行的代码块/方法。