Реализация потокобезопасной очереди с использованием одного или более стека - Java - PullRequest
0 голосов
/ 07 ноября 2018

Это вопрос интервью.
Первая часть заключалась в реализации очереди с использованием одного или более стека. Это общеизвестный вопрос, и я дал ответ, который похож на метод 2 здесь .

Во второй части меня спросили, является ли написанный мною код потокобезопасным. Мой ответ состоял в том, что это небезопасно, поскольку несколько потоков могут изменять один и тот же объект (первый или второй стек) одновременно.

Затем меня спросили, могу ли я сделать этот код поточно-ориентированным. Я предложил заменить класс Stack<Integer> на ConcurrentLinkedDeque<Integer>, который является потокобезопасным стеком.

Похоже, что интервьюеру не понравилась эта идея.
У вас есть лучшее представление о том, как сделать поток кода безопасным?

...