我有一个程序,希望我的线程对其他内容进行某种更新,但是由于我同时启动所有线程,因此它们同时进行更新,这违背了目的,因为它们都互相覆盖。我希望线程更新某些内容,让某些内容快速使用它,然后再进行更改。有没有办法让任何线程先运行然后让其他线程等待?感觉我什么也做不了,因为如果我更改线程类,那么所有线程都将执行更改并仍然同时执行。我也使用GUI,所以不能只在每个线程的开始调用之间使用Thread.Sleep。我认为没有任何代码可以解决这个问题,我只想知道是否有一种方法可以阻止除一个线程之外的所有线程,或者延迟每个线程同时到达同一行代码,因为它们都改变了变量。
答案 0 :(得分:0)
为此目的,请使用同步块。当代码块以同步方式包装时,只有一个线程可以访问它,而其他线程则等待轮换。
synchronized(this)
{
// your line of code
}