tales from the interview
softmaster — 02.02.2010
ещё задачка:есть буфер, массив байт, для простоты - бесконечный.
написать два метода -
write(byte *data, size_t size); // копируем (добавляем) данные в буфер.
read(byte *data, size_t size); // копируем (убираем) данные из буфера.
релизовать оба метода для многопоточной системы. без блокирования,aka lock free.
бонус: то же, буфер конечного размера, кольцевой (с wrapping).
update:
read=enqueue
write=dequeue
update2:
user mode. 32 битный. cmpxchg есть и умеет 32 бита.
в общем, всё как в жизни. если нужны какие-то допущения - просто указывайте их, не спрашивайте - час ночи уже, а я погребён под лавиной комментов %)
Жалюзийные двери или сплошные полотна: что выбрать для вашего интерьера
Между нами, образованными женщинами!
Время ожидания истекло
Концепция децентрализованного подрыва Венесуэлы
Сколько лет героям фильма "Три плюс два"?
Великобритания и Норвегия присоединились к программе CAVS по закупке
Ах, как много на свете кошек
Бушков, Чернавский и лето 1988-го

