Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何基于线程ID锁定线程?_Java_Multithreading - Fatal编程技术网

Java 如何基于线程ID锁定线程?

Java 如何基于线程ID锁定线程?,java,multithreading,Java,Multithreading,我有3个类,由3个线程共享。每个线程将访问一个同步的公共列表。但问题是,我只想基于ID锁定一个线程,如果前一个线程完成,则取消锁定下一个线程 范例 我有线程1,线程2,线程3,它们将同时访问一个列表。我需要根据其id锁定线程2和线程3,直到线程1完成。让他们一个一个地被处决 我正在使用JAVA编程来实现这一点。请帮助我找到一种方法来实现这一点。可以通过ExecutorService.invokeAll方法完成。我的主要目标是保持订单o/p 请检查以下URL: 我希望它能帮助别人。谢谢大家。可以关

我有3个类,由3个线程共享。每个线程将访问一个同步的公共列表。但问题是,我只想基于ID锁定一个线程,如果前一个线程完成,则取消锁定下一个线程

范例

我有线程1,线程2,线程3,它们将同时访问一个列表。我需要根据其id锁定线程2和线程3,直到线程1完成。让他们一个一个地被处决


我正在使用JAVA编程来实现这一点。请帮助我找到一种方法来实现这一点。

可以通过ExecutorService.invokeAll方法完成。我的主要目标是保持订单o/p

请检查以下URL:


我希望它能帮助别人。谢谢大家。可以关闭此问题。

因此,如果线程1和线程2同时访问列表,就不会有问题了?顺便说一句,什么编程语言?不。我想锁定其他线程,并根据其id只执行一个线程。一旦当前线程完成,它必须解锁下一个线程,然后让它执行。当多线程与特定列表交互时,需要执行此操作。如果您在列表上进行同步,它实际上应该执行您想要的操作,则只有在另一个线程完成执行后,线程才会访问此代码块。如果您希望线程按特定顺序执行操作,则不应使用多个线程。线程并发运行,这比无序运行更远离有序运行……Re:我需要根据其id锁定t2和t3,直到t1完成。让他们一个一个地被处决。为什么ID很重要?一个简单的同步块将确保线程只能逐个执行其内容。