2010-11-05 3 views
4

Я столкнулся с вопросом this, и мне было любопытно, в каких реальных ситуациях вы действительно хотите использовать стек из нескольких потоков, в отличие от очереди FIFO или очереди приоритетов. Мне кажется, что мне очень сложно понять, что свойство LIFO когда-либо подходит для использования в нескольких потоках. У вас действительно не будет гарантии того, что вы выходите из стека, кроме того, что было недавно добавлено. Разве это не приведет к тому, что они сильно устанут от старых вещей в стеке/очереди?Когда вы хотите использовать поточный сейф?

ответ

2

Я могу представить, что это может быть полезно в ситуации, когда ответ на наиболее недавно прибывавший труд считается более полезным. Вид модели с приоритетным прерыванием, с более старыми элементами, которые нужно проверять и обрабатывать с учетом времени.

Я могу представить себе реализацию бота, собирающего репутацию Stack Overflow, который будет работать таким образом. Однопоточный вход берет поток новых вопросов в стек - пул потоков появляется и быстро реагирует на последние, и проверяет и отвечает на более старые, если уже не имеет приемлемого ответа и не более жизнеспособных возможностей репутации через новые вопросы, поступающие.