我在尝试使用 Java 编程的信号量的多线程应用程序时遇到了一些麻烦。
我有几个线程在无限循环中运行以处理管道中的一组数据。每个线程的“运行”函数如下所示:
public void run()
{
while(true)
{
try{
//acquire semaphore, wait if unavailable
//continue with code
}
catch(InterruptedException e)
{}
}
我的目标是让多个线程保持打开状态,并一次通过它们运行不同的数据集,并与信号量进行协调。我的问题是我的线程似乎没有同时运行。一旦我 run() 一个无限循环的线程,我的整个程序就会挂起,并且不会继续。我究竟做错了什么?