Описание тега interlocked-increment
Interlocked.Increment увеличивает указанную переменную и сохраняет результат как атомарную операцию.
3
ответа
Как первый введенный поток может сигнализировать другим параллельным потокам о завершении того же метода?
Как первый введенный поток может сигнализировать другим параллельным потокам о завершении того же метода? У меня есть метод с именем скажем PollDPRAM(). Он должен совершить поездку по сети на некоторое медленное оборудование и обновить личные данные…
14 янв '11 в 22:27
1
ответ
Безопасно ли использовать "небезопасные" функции потоков?
Прошу прощения за мой слегка юмористический титул. Я использую два разных определения слова "безопасный" в нем (очевидно). Я довольно плохо знаком с потоками (ну, я использовал потоки много лет, но только очень простые формы). Теперь я столкнулся с …
07 янв '12 в 13:13
1
ответ
Как я могу оперативно назначить уникальные идентификаторы для объектов в C#
Я работаю над библиотекой C#, которая будет создавать тонны небольших объектов как часть нормальной работы (например, узлы AST в компиляторе). Я хотел бы назначить каждому экземпляру уникальный идентификатор (уникальный в рамках программы, а не глоб…
23 фев '13 в 19:21
3
ответа
Становится ли оператор C# ++ потокобезопасным в цикле foreach?
Недавно я перешел с VB на C#, поэтому я часто использую конвертер C# в VB.NET, чтобы понять синтаксические различия. При переходе следующего метода на VB я заметил интересную вещь. C# оригинальный код: public bool ExceedsThreshold(int threshold, IEn…
04 апр '15 в 17:52
2
ответа
Если Interlocked.Increment является атомарным, почему я должен когда-либо использовать ++ вместо этого?
Я предполагаю, что эта атомная операция быстрее, чем ++, Я вижу только преимущества в пользу Interlocked.Increment, Каковы его недостатки?
23 май '11 в 13:40
3
ответа
Может ли C# блокировать сообщения FIFO в очереди утечки?
Я работаю над академическим проектом с открытым исходным кодом, и теперь мне нужно создать быструю блокирующую очередь FIFO в C#. Моя первая реализация просто обернула синхронизированную очередь (с динамическим расширением) в семафор читателя, затем…
09 окт '10 в 22:46
1
ответ
Управление потоками с высоким / низким приоритетом в.net
Сценарий следующий: существует несколько потоков с низким приоритетом, которые могут быть прерваны потоками с высоким приоритетом. Всякий раз, когда поток с высоким приоритетом просит потоки с низким приоритетом приостановить работу, они переходят к…
26 фев '13 в 12:10
0
ответов
Ошибка соединения 2001: нерешенный внешний символ при портировании с 32 на 64 бит
Я пытаюсь портировать 32-битное приложение на 64-битное и у меня проблемы с некоторыми взаимосвязанными функциями, а именно: InterlockedIncrement64, Decrement64, Exchange64, CompareExchange64 а также ExchangeAdd64, Ошибка: ошибка LNK2001: неразрешен…
16 июн '15 в 16:37
6
ответов
Чтение int, который обновляется Interlocked в других темах
(Это повторение: как правильно прочитать int-поле Interlocked.Increment? Но после прочтения ответов и комментариев я все еще не уверен в правильном ответе.) Есть некоторый код, которым я не владею и не могу изменить на использование блокировок, кото…
17 июл '14 в 15:56
3
ответа
Разница между блокируемым доступом к переменным и критическим сечениями
Может ли кто-нибудь помочь объяснить разницу между блокируемым доступом к переменным И критическим разделам с инкрементным шагом в C++? спасибо, высоко ценится, заранее.
24 июн '11 в 00:34
1
ответ
Странное поведение System.Threading.Timer
Я пытаюсь понять, как Timer будет использовать пул потоков. Я написал следующий простой фрагмент. class Program { static private readonly Action Action = () => { Thread.SpinWait(100 * 10000); Interlocked.Increment(ref _data); }; private static vo…
01 окт '13 в 17:28
2
ответа
Обработка параллельных заданий / потоков
Я пытаюсь провести рефакторинг своего проекта, и теперь я пытаюсь найти лучшие способы повышения производительности приложения. Вопрос 1. SpinLock против блокировки Для создания счетчика, который имеет лучшую производительность. Interlocked.increame…
05 авг '18 в 21:48
1
ответ
SpinLock в C#. В каком типе алгоритма SpinLock является лучшим выбором по сравнению с Monitor?
Возможный дубликат: Почему все утверждают, что SpinLock быстрее? Этот вопрос касается SpinLock, Monitor & Interlocked. Я сделал 2 теста, которые проверяют производительность Monitor, SpinLock а также Interlocked и эти испытания оставили меня в замеш…
01 фев '13 в 08:22
1
ответ
Написание многопоточного цикла вручную - неоптимальная масштабируемость
Я написал это тестовое приложение: оно проходит через итерации от 0 до 9999, для каждого целого числа в диапазоне оно вычисляет некоторую бесполезную, но интенсивную для вычисления функцию. В результате программа выводит сумму значений функции. Чтоб…
11 окт '12 в 11:43
4
ответа
Атомарность конструктора копирования объекта подсчета ссылок с использованием InterlockedIncrement64
Я пытаюсь обернуть голову, как я могу гарантировать, что счетчик ссылок на объекты является потокобезопасным. class MyObject{ //Other implementation details private: mutable volatile LONGLONG * m_count; IData * m_data; }; Предположим, что есть необх…
14 сен '12 в 16:18
6
ответов
Производительность Interlocked.Increment
Является Interlocked.Increment(ref x) быстрее или медленнее, чем x++ для целых и длинных на разных платформах?
23 июн '09 в 17:46
2
ответа
ConcurrentQueue один элемент занят двумя потоками
Я хочу, чтобы два потока работали с одной очередью. Первый поток должен вызываться каждые 2 секунды, а второй поток - каждые 3 секунды. Оба потока должны начаться одновременно. У меня проблема при доступе к первому элементу очереди. Оба потока получ…
05 сен '13 в 23:43
1
ответ
C# - блокировка приращения по словарю как список
Я знаю, что int не будет иметь фиксированной позиции в памяти, поэтому он просто не может так работать. Но точно такая же часть кода будет выполняться одновременно с разными именами, параметрами и т. Д. Мне нужно по существу передать строку "Имя", а…
10 мар '18 в 00:04
0
ответов
Альтернатива Windows InterlockedIncrement64 с использованием C++
Я использую InterlockedIncrement64 в своем приложении для атомарного приращения, чтобы убедиться, что он потокобезопасен. Мой код должен основываться только на библиотеке времени выполнения c, я решил использовать атомарный класс. Я написал следующи…
13 ноя '13 в 22:40
3
ответа
Запутался в использовании Interlocked.Increment и Lock
Я понимаю функциональность Interlocked.Increment а также lock(), Но я не понимаю, когда использовать один или другой. Насколько я могу судить Interlocked.Increment увеличивает общее значение int / long, тогда как как lock() предназначен для блокиров…
07 сен '12 в 09:11