У меня проблемы с многопоточным приложением, которое использует семафоры, которые я пытаюсь запрограммировать на Java.Java-потоки не работают одновременно - что я делаю неправильно?
У меня есть несколько потоков, которые работают в бесконечных циклах для обработки набора данных в конвейере. «Бег» функция каждого потока выглядит примерно так:
public void run()
{
while(true)
{
try{
//acquire semaphore, wait if unavailable
//continue with code
}
catch(InterruptedException e)
{}
}
Моя цель состоит в том, чтобы держать несколько потоков открытым и запускать различные наборы данных через них по одному, согласовав с семафоров. Моя проблема в том, что мои потоки, похоже, не работают одновременно. Как только я запускаю() поток с бесконечным циклом, вся моя программа зависает и не будет продолжаться. Что я делаю не так?
Можете ли вы показать код, в котором все потоки порождены? –
Возможно, вам потребуется разместить дополнительную информацию, желательно [sscce] (http://sscce.org). Однако сначала проверьте, что вы начинаете каждый поток, вызывая его метод «start», а не «run». –
wow, назвав свои темы «run», была моей проблемой все это время, спасибо тонну – user2968162