memory-barriers
Попытка понять модель памяти .net, когда речь заходит о потоковой обработке. Этот вопрос строго теоретический, и я знаю, что он может быть решен другими способами, такими как использование lock или маркировка _task как volatile. Возьмем для примера следующий фрагмент кода: class Test { Task _task; ...
Я читал руководство по потокам и соответствующие страницы MSDN и так вопросы несколько раз. Тем не менее, я не совсем понимаю, если изменчивы.Операции чтения / записи и блокировки применяются только к соответствующим переменным или ко всем операциям чтения/записи до/после этих операций. Например, представь...
Могут ли некоторые инструкции загрузки никогда не быть глобально видимыми из-за пересылки нагрузки хранилища ? Другими словами, если инструкция load получает свое значение из буфера хранилища, она никогда не должна считываться из кэша. Поскольку обычно утверждается, что загрузка глобально видна, когда она чи...
Я читаю Энтони Уильяма параллелизм C++ в действии. Глава 7 описывает процесс разработки стека без блокировки и иллюстрирует общие проблемы, которые затрудняют Программирование без блокировки. В частности, в разделе 7.2.3 (обнаружение узлов, которые не могут быть восстановлены с помощью указателей опасности) ...
Java 6 API вопрос. Имеет ли вызов LockSupport.unpark(thread) отношение happens-before к возвращению из LockSupport.park в только что выделенном потоке? Я сильно подозреваю, что ответ-да, но Джавадок, кажется, не упоминает об этом явно....
в кодовой базе, которую я рассмотрел, я нашел следующую идиому. void notify(struct actor_t act) { write(act.pipe, "M", 1); } // thread A sending data to thread B void send(byte *data) { global.data = data; notify(threadB); } // in thread B event loop read(this.sock, &cmd, 1); switch (cmd) { ...