Как я могу получить доступ к одному и тому же стеку в двух разных классах? - PullRequest
0 голосов
/ 04 августа 2020

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

Метод run создает объекты, которые я хочу добавить в стек.

Это часть кода для потоков в моем основном классе:

public static void startProducers(int producerCount)
{
    for (int i = 0; i < producerCount; i++ ) {
        Thread counter = new Thread(new Producer(i));
        counter.start();
    }

}

public static void startUsers(int UserCount)
{
    for (int i = 0; i < UserCount; i++ ) {
        Thread counter1 = new Thread(new User(i));
        counter1.start();
    }
}

1 Ответ

0 голосов
/ 04 августа 2020

Мы можем передать один и тот же объект стека в оба класса Thread. Что-то вроде этого

class Thread1 extends Thread {
    Thread1(Stack s) {}
    method run() {// push in the same stack object}
}

class Thread2 extends Thread {
    Threa2(Stack s) {}
    method run() {// pop from the same stack object}
}

Если вы можете подробнее рассказать о коде, который вы написали, добавив несколько примеров, это будет большим подспорьем !! Спасибо :)

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