Потоки с рекурсивным вызовом в другом классе - PullRequest
0 голосов
/ 28 апреля 2020

Работа над проектом с многопоточностью в первый раз. Это довольно долго, так что я не пожалею вам кода. У меня есть куча разных классов. Основными двумя для этой проблемы являются класс нитей и класс «сосед». В соседнем классе у меня есть рекурсивный метод, называемый прогулкой. Упрощенно, это выглядит примерно так:

class Neighbour {
    void Walk() {
         if(upNeighbour.alive()) {
            upNeighbour.Walk();
         }
         if (downNeighbour.alive()) {
             Thread n = new Thread();
             n.start();
         }

А теперь я хочу, чтобы этот рекурсивный вызов проходил в потоке. run() в моем классе потока требует первого Walk() И мой код работает так, что, если хотя бы один из соседей может пройти, старый поток будет проходить и идти последним из c для эффективной работы с потоками.

Но мой вопрос заключается в том, произойдет ли этот рекурсивный вызов в методе ходьбы (который не относится к тому же классу, что и класс потока, и не вызывается классом потока, за исключением самого первого раза) в теме? Или мне нужно поместить весь метод рекурсивного блуждания в run()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...