Работа над проектом с многопоточностью в первый раз. Это довольно долго, так что я не пожалею вам кода. У меня есть куча разных классов. Основными двумя для этой проблемы являются класс нитей и класс «сосед». В соседнем классе у меня есть рекурсивный метод, называемый прогулкой. Упрощенно, это выглядит примерно так:
class Neighbour {
void Walk() {
if(upNeighbour.alive()) {
upNeighbour.Walk();
}
if (downNeighbour.alive()) {
Thread n = new Thread();
n.start();
}
А теперь я хочу, чтобы этот рекурсивный вызов проходил в потоке. run()
в моем классе потока требует первого Walk()
И мой код работает так, что, если хотя бы один из соседей может пройти, старый поток будет проходить и идти последним из c для эффективной работы с потоками.
Но мой вопрос заключается в том, произойдет ли этот рекурсивный вызов в методе ходьбы (который не относится к тому же классу, что и класс потока, и не вызывается классом потока, за исключением самого первого раза) в теме? Или мне нужно поместить весь метод рекурсивного блуждания в run()
?