concurrency- все статьи тега
Являются ли структуры C# потокобезопасными?
Является ли структура C# потокобезопасной? Например, если есть: struct Data { int _number; public int Number { get { return _number; } set { _number = value; } } public Data(int number) { _number = number; } } В другом типе: class DadData { public Data TheData { get; set; } } - это свойство данных, потокобезопасным? ...
Производительность JNI против JNA
У нас есть собственное приложение c/asm, использующее GPU(OpenCL) для больших данных encrypt/decrypt с определенным методом, и оно просто отлично работает, никаких проблем. Часть проекта (web и дистрибутив) разрабатывается JEE, и нам просто нужно вызвать собственное приложение/библиотеку. Мы попытались вызвать его как отдельный внешний процесс, используя класс Process. Проблема в том, что мы не можем контролировать приложение(события, обработчики, потоки и т. д...). Мы также попытались просто п ...
крайней мере блокирования кэша Java
Предположим, мы хотим реализовать кэш для определенной сущности. class Cache { private static Map<String, Object> cache = new HashMap<>(); public static Object get(String id) { assert notNullOrEmpty(id); return cache.get(id); } public static Object add(String id, Object element) { assert notNullOrEmpty(id) && notNull(element); if(cache.containsKey(id)) return cache.get(id); cache.put(id, element); return ele ...
Правильное использование ConcurrentQueue в HttpModule?
Я пытаюсь добавить ускорение к HttpModule, который обрабатывает изображения с помощью асинхронного программирования. Хотя, безусловно, кажется, что я получаю улучшение производительности, я хотел бы проверить, правильно ли я использую предоставляемые инструменты. Меня особенно беспокоит, что я неправильно обрабатываю очередь. Подход, который я использую. Init The ConcurrentQueue добавьте метод ProcessImage в очередь on то BeginEventHandler в AddOnBeginRequestAsync обработать очередь на E ...
Go Язык Программирования Взаимное Параллельное Выполнение
У меня есть две параллельные процедуры go, как показано ниже, Routine 1{ routine procedure critical section{ } routine procedure } Routine 2{ routine procedure critical section{ } routine procedure } Возможно ли с помощью некото ...
Использование C# ConcurrentBag с несколькими производителями и одним потребителем
У меня есть ситуация, когда несколько потоков создают один объект ICollection. ConcurrentBag кажется лучшим (?) решение, так как-1) каждый поток будет иметь свою собственную локальную очередь, и 2) потокам не нужно общаться - они независимы. Пока все хорошо, но правда в том, что мне нужно вернуть Исет из этого метода (после того, как все производители прекратили). Даже если текущий экземпляр ConcurrentBag отличается от (это гарантируется логикой приложения) , Мне все еще нужно преобразовать его ...
Goroutines с ListenAndServe повышает производительность?
Я не очень хорошо знаком с подпрограммами Go, но так как я работаю с маршрутизатором net/http, я несколько раз видел, чтоListenAndServe() обернут подпрограммой go. Сервер должен быть способен обрабатывать несколько запросов одновременно из коробки, чтобы быть эффективным. Так зачем идти процедуры, как легкие нити используются? Обеспечивает ли параллелизм какие-либо преимущества? Вот пример OpenShift package main import ( "fmt" "net/http" ) func helloHandler(w http.ResponseWriter, ...
Неизменяемые структуры данных и параллелизм
Я пытаюсь понять, как использование неизменяемых структур данных в параллельном программировании может устранить необходимость блокировки. Я читал кое-что в интернете, но пока не видел конкретных примеров. Например, предположим, что у нас есть некоторый код (C#), который использует lock(s) вокруг Dictionary< string, object> делает это: class Cache { private readonly Dictionary<string, object> _cache = new Dictionary<string, object>(); private readonly object _lock = ...
В чем разница между параллелизмом и параллелизмом?
в чем разница между параллелизмом и параллелизмом? примеры приветствуются. ...
Когда и как я должен использовать ThreadLocal переменной?
когда я должен использовать ThreadLocal переменной? как им пользоваться? ...
Что такое гонки?
при написании многопоточных приложений одной из наиболее распространенных проблем являются условия гонки. мои вопросы к сообществу: Что такое гонки? Как вы их обнаруживаете? Как вы с ними справляетесь? Наконец, как вы предотвращаете их появление? ...
Вы когда-нибудь использовали ключевое слово volatile в Java?
на работе сегодня я наткнулся на volatile ключевое слово в Java. Не будучи очень знаком с ним, я нашел такое объяснение: теория и практика Java: управление волатильности учитывая детали, в которых эта статья объясняет ключевое слово в вопросе, вы когда-нибудь использовать его или вы могли бы когда-нибудь увидеть случай, в котором вы могли бы использовать это ключевое слово в правильном порядке? ...
Почему нет ConcurrentHashSet против ConcurrentHashMap
HashSet основан на HashMap. если мы посмотрим на HashSet<E> реализация, все управляется под HashMap<E,Object>. <E> используется в качестве ключа HashMap. и мы это знаем HashMap не является потокобезопасным. Вот почему у нас есть ConcurrentHashMap в Java. исходя из этого, я смущен, что почему у нас нет ConcurrentHashSet, который должен быть основан на ConcurrentHashMap? что-нибудь еще Я пропал? Мне нужно использовать Set в многопоточной среде. кроме того, если я хочу созда ...
Есть ли преимущество в использовании синхронизированного метода вместо синхронизированного блока?
может ли кто-нибудь сказать мне преимущество синхронизированного метода над синхронизированным блоком с примером? ...
Что такое хороший шаблон для использования глобального мьютекса в C#?
класс мьютексов очень неправильно понимается, а глобальные мьютексы тем более. Что такое хорошо и безопасным для использования при создании глобальных мьютексов? для работы независимо от локали моя машина находится в гарантированно освободить мьютекс правильно необязательно не зависает навсегда, если мьютекс не приобретается имеет дело со случаями, когда другие процессы отказываются от мьютекса ...
Как дождаться завершения всех потоков, используя ExecutorService?
Мне нужно выполнить некоторое количество задач 4 одновременно, что-то вроде этого: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait for completion somehow Как я могу получить уведомление, как только все они будут завершены? На данный момент я не могу думать ни о чем лучше, чем установить какой-то глобальный счетчик задач и уменьшить его в конце каждой задачи, а затем контролировать в бесконечном цикле этот счетчик ...
У ruby есть реальная многопоточность?
Я знаю о "кооперативной" резьбе ruby с помощью зеленые нити. Как я могу создать реальные потоки "уровня ОС" в своем приложении, чтобы использовать несколько ядер процессора для обработки? ...
Что такое ответ Haskell на узел.Джей?
Я считаю, что сообщество Erlang не завидует Node.js, поскольку он не блокирует ввод-вывод изначально и имеет способы легко масштабировать развертывания до более чем одного процессора (что-то даже не встроенное в узел.js). Подробнее на http://journal.dedasys.com/2010/04/29/erlang-vs-node-js и узел.js или Erlang а как же Хаскелл? Может ли Haskell предоставить некоторые преимущества Node.js, а именно чистое решение, чтобы избежать блокировки ввода / вывода без обращения к многопоточное программи ...
Каков самый быстрый способ отправить 100 000 HTTP-запросов в Python?
Я открываю файл, который имеет 100 000 URL-адресов. Мне нужно отправить HTTP-запрос для каждого URL-адреса, и печатать код состояния. Я использую Python 2.6, и до сих пор смотрел на многие запутанные способы реализации Python threading/concurrency. Я даже посмотрел на питона согласие библиотеки, но не могу понять, как правильно написать эту программу. Кто-нибудь сталкивался с подобной проблемой? Я думаю, вообще мне нужно знать, как выполнять тысячи задач в Python так быстро, как возможно - я ...