Java线程没有并发运行 - 我做错了什么?

时间:2013-11-08 10:05:09

标签: java multithreading semaphore

我在使用Semaphores的多线程应用程序时遇到了一些麻烦,我试图用Java编程。

我有一些线程在无限循环中运行,以处理管道中的一组数据。每个线程的“运行”功能看起来像这样:

public void run()
{
while(true)
{
   try{
    //acquire semaphore, wait if unavailable
    //continue with code
}
   catch(InterruptedException e)
   {}
}

我的目标是保持多个线程打开并一次一个地运行不同的数据集,并与Semaphores协调。我的问题是我的线程似乎没有同时运行。一旦我运行()一个具有无限循环的线程,我的整个程序就会挂起,并且不会继续。我做错了什么?

1 个答案:

答案 0 :(得分:2)

  

一旦我运行()一个带有无限循环的线程,

myThread.start() //correct way

not myThread.run() // this is not the correct way