Вопросы по теме 'interlocked'
InterlockedExchange и выравнивание памяти
Я смущен тем, что Microsoft утверждает, что для InterlockedExchange требуется выравнивание памяти, однако в документации Intel говорится, что выравнивание памяти не требуется для LOCK. Я что-то упускаю или что-то еще? Благодарность
из библиотеки...
2549 просмотров
schedule
19.12.2023
Это правильный дизайн синхронизации Interlocked?
У меня есть система, которая берет образцы. У меня есть несколько клиентских потоков в приложении, которые заинтересованы в этих образцах, но фактический процесс взятия образца может происходить только в одном контексте. Это достаточно быстро, чтобы...
1197 просмотров
schedule
11.02.2024
Использование Interlocked.CompareExchange с классом
Оператор System.Threading.Interlocked.CompareExchange обеспечивает атомарную (таким образом потокобезопасную) реализацию на C # операции сравнения и замены.
Например, int i = 5; Interlocked.CompareExchange(ref i, 10, 5); . После этой команды int...
13591 просмотров
schedule
20.05.2022
Как использовать взаимосвязанные операции с файлами, отображаемыми в память, в .Net
Есть ли способ использовать методы Interlocked.CompareExchange(); и Interlocked.Increment(); для значений, хранящихся в файле с отображением памяти?
Я хотел бы реализовать многопоточную службу, которая будет хранить свои данные в файле с...
1129 просмотров
schedule
30.04.2022
Поля, считываемые / записываемые несколькими потоками, взаимосвязанные и изменчивые
Здесь, на SO, довольно много вопросов о Interlocked и volatile , я понимаю и знаю концепции volatile (без переупорядочивания, всегда чтение из памяти и т. Д.), И я знаю, как работает Interlocked в том смысле, что он выполняет атомарная...
754 просмотров
schedule
31.07.2023
.net System.MemberwiseClone и блокировка операций записи
При выполнении MemberwiseClone массива типов значений:
var arr = new double[100];
Если эти двойники изменяются с помощью Interlocked write в других потоках, будет ли копия MemberwiseCloned подвергаться риску разрыва двойников в ней? Меня не...
84 просмотров
schedule
05.10.2022
Использование синхронизации Interlocked.CompareExchange с объектом синхронизации в обработчике Timer HandleElapsed
Я читаю пример MSDN http://msdn.microsoft.com/en-us/library/system.timers.timer.stop.aspx
В примере с timer.stop я подозревал, что его способ использования Interlocked.CompareExchange неверен.
private static void HandleElapsed(object sender,...
2018 просмотров
schedule
08.06.2022
Interlocked.Increment против блокировки в режиме отладки и в режиме выпуска
Я проверял, как Interlocked.Increment и lock ведут себя на архитектуре моего компьютера, потому что я прочитал следующие строки в эта статья .
Как переписано с Interlocked.Increment, метод должен выполняться быстрее, по крайней мере, на...
445 просмотров
schedule
20.08.2022
Delphi [volatile] и InterlockedCompareExchange ненадежны?
Я написал простой стек узлов без блокировки (Delp[hi XE4, Win7-64, 32-разрядное приложение), в котором я могу иметь несколько «стеков» и одновременно извлекать/проталкивать узлы между ними из разных потоков. Он работает в 99,999% случаев, но в...
1684 просмотров
schedule
18.05.2023
Сроки когерентности кешей памяти после барьера памяти и после взаимосвязанных операций
Есть ли разница во времени согласованности (или «сброса») кэшей памяти после операций с блокировкой и после вызова барьеров памяти? Давайте рассмотрим на C # - используя любые операции Interlocked vs Thread.MemoryBarrier () - идентично ли...
71 просмотров
schedule
13.04.2022
Общее перечисление между несколькими потоками
У меня есть перечисление, которое используется несколькими потоками:
public enum Action
{
Read,
Write,
None
}
Внутри класса у меня есть переменная типа Action:
public Action _action;
Это общая переменная, то есть она...
1000 просмотров
schedule
16.05.2023
С# - блокировка приращения в списке лайков словаря
Я знаю, что у int не будет фиксированной позиции в памяти, поэтому он просто не может так работать. Но одна и та же часть кода будет выполняться одновременно с разными именами, параметрами и т.д.
Мне нужно по существу передать строку «Имя», а...
968 просмотров
schedule
12.07.2023
Самый быстрый способ безопасно прочитать содержимое long[], элементы которого изменяются одновременно
Когда у вас есть
long[] myArray = new long[256];
чьи элементы изменяются несколькими потоками с использованием
Interlocked.Increment(ref myArray[x])
точно невозможно получить моментальный снимок myArray в какой-то момент времени,...
112 просмотров
schedule
18.10.2022
Следует ли использовать InterlockedExchange для всех настроек переменной?
Я использую InterlockedExchange в Windows, и у меня есть два вопроса, которые вместе составляют мой главный вопрос.
InterlockedExchange использует тип LONG (32 бита). Согласно документации Microsoft Доступ к заблокированным переменным : простые...
76 просмотров
schedule
18.04.2023
Зачем объявлять переменную как изменчивую и одновременно использовать для нее Interlocked?
Я читаю Параллельное программирование в Windows Джо Даффи. В конце главы «Модели памяти и свобода блокировки» он приводит пример стека без блокировки. Я просмотрел код и одного не понимаю, это необходимость пометки поля m_next как volatile ....
51 просмотров
schedule
27.04.2022