我在使用Semaphores的多线程应用程序时遇到了一些麻烦,我试图用Java编程。
我有一些线程在无限循环中运行,以处理管道中的一组数据。每个线程的“运行”功能看起来像这样:
public void run()
{
while(true)
{
try{
//acquire semaphore, wait if unavailable
//continue with code
}
catch(InterruptedException e)
{}
}
我的目标是保持多个线程打开并一次一个地运行不同的数据集,并与Semaphores协调。我的问题是我的线程似乎没有同时运行。一旦我运行()一个具有无限循环的线程,我的整个程序就会挂起,并且不会继续。我做错了什么?
答案 0 :(得分:2)
一旦我运行()一个带有无限循环的线程,
myThread.start() //correct way
not myThread.run() // this is not the correct way