concurrency- все статьи тега ➜ страница 2
Что такое Swift эквивалент Objective-C "@synchronized"?
Я искал Swift книгу, но не могу найти Swift версию @synchronized. Как сделать взаимное исключение в Swift? ...
Практическое применение для атомного интегратора
Я вроде понимаю, что AtomicInteger и другие атомарные переменные позволяют одновременный доступ. В каких случаях этот класс обычно используется? ...
В чем разница между Thread start() и Runnable run()
скажем, у нас есть эти два Runnables: class R1 implements Runnable { public void run() { … } … } class R2 implements Runnable { public void run() { … } … } тогда в чем разница между этим: public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); } и так: public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); } ...
Являются ли несинхронизированные статические методы потокобезопасными, если они не изменяют статические переменные класса?
мне было интересно, если у вас есть статический метод, который является не синхронизируется, но не изменить любые статические переменные это потокобезопасным? Что делать, если метод создает локальные переменные внутри него? Например, является ли следующий код потокобезопасным? public static String[] makeStringArray( String a, String b ){ return new String[]{ a, b }; } Итак, если у меня есть два потока, вызывающие метод ths непрерывно и одновременно, один с собаками (скажем, "Great dane" и ...
Что такое тупик?
при написании многопоточных приложений одной из наиболее распространенных проблем являются тупики. мои вопросы к сообществу: Что такое тупик? Как вы их обнаруживаете? вы справляетесь с ними? и, наконец, как вы предотвращаете их появление? ...
Безопасно ли получать значения из java.утиль.HashMap из нескольких потоков (без изменений)?
есть случай, когда карта будет построена, и как только она будет инициализирована, она никогда не будет изменена снова. Однако он будет доступен (только через get (key)) из нескольких потоков. Безопасно ли использовать java.util.HashMap в этом случае? (В настоящее время я с удовольствием использую java.util.concurrent.ConcurrentHashMap, и не имеют измеренной потребности улучшить производительность, но мне просто любопытно, если простой HashMap хватило бы. Следовательно, этот вопрос не " како ...
.NET - блокировка словаря и ConcurrentDictionary
Я не мог найти достаточно информации о ConcurrentDictionary типы, поэтому я подумал, что спрошу об этом здесь. в настоящее время, я использую Dictionary чтобы удерживать всех пользователей, к которым постоянно обращаются несколько потоков (из пула потоков, поэтому нет точного количества потоков), и он имеет синхронизированный доступ. недавно я узнал, что в .NET 4.0 есть набор потокобезопасных коллекций, и это кажется очень приятным. Мне было интересно, что будет эффективнее и проще управлять о ...
Greenlet Vs. Threads
Я новичок в gevents и greenlets. Я нашел хорошую документацию о том, как работать с ними, но никто не дал мне оправдания о том, как и когда я должен использовать greenlets! В чем они действительно хороши? это хорошая идея, чтобы использовать их в прокси-сервер или нет? почему нет темы? Я не уверен в том, как они могут предоставить нам параллелизм, если они в основном являются совместными подпрограммами. ...
Различные типы потокобезопасных наборов в Java
там, кажется, много различных реализаций и способов создания потокобезопасных наборов в Java. Некоторые примеры включают 1) CopyOnWriteArraySet 2) коллекций.synchronizedSet (Set set) 3) ConcurrentSkipListSet 4) коллекций.newSetFromMap (new ConcurrentHashMap ()) 5) Другие наборы генерируются таким же образом, как (4) эти примеры приходят от шаблон параллелизма: параллельные реализации набора в Java 6 может ли кто-нибудь просто объяснить различия, преимущества и недостатки этих примеров и д ...
Что такое забор памяти?
Что подразумевается под использованием явного забора памяти? ...
AtomicInteger в и установить
В чем разница между lazySet и set способы AtomicInteger? Элемент документация не так уж много можно сказать о lazySet: в конечном итоге устанавливает заданное значение. похоже, что сохраненное значение не будет сразу установлено на нужное значение, но вместо этого будет запланировано установить некоторое время в будущем. Но, каково практическое применение этого метода? Какой-нибудь пример? ...
Как использовать ConcurrentLinkedQueue?
как я могу использовать ConcurrentLinkedQueue в Java? Используя это LinkedQueue, мне нужно беспокоиться о параллелизме в очереди? Или мне просто нужно определить два метода (один для повторного извлечения элементов из списка, а другой для добавления элементов в список)? Примечание: очевидно, что эти два метода должны быть синхронизированы. Верно? EDIT: что я пытаюсь сделать, это: у меня есть класс (в Java) с одним методом для извлечения элементов из очереди и другой класс с помощью одного мето ...
Обратный отсчет против семафора
есть ли какие-либо преимущества использования java.утиль.параллельный.Обратный отсчет вместо java.утиль.параллельный.Семафор? насколько я могу судить, следующие фрагменты почти эквивалентны: 1. Семафор final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { public void run() { try { doStuff(); } finally { sem.release(); } } }; t.start(); } sem.acquire(num_threads) ...
Статические переменные разделяемые между потоками?
мой учитель в классе java верхнего уровня по потоковой передаче сказал что-то, в чем я не был уверен. он заявил, что следующий код не обязательно обновлять ready переменной. По его словам, два потока не обязательно разделяют статическую переменную, особенно в том случае, когда каждый поток (основной поток против ReaderThread) работает на своем собственном процессоре и поэтому не использует одни и те же регистры/кэш/и т. д., а один процессор не обновит другой. по существу, он сказал, что возмо ...
ConcurrentModificationException для ArrayList [дубликат]
этот вопрос уже есть ответ здесь: итерация по коллекции, избегая ConcurrentModificationException при удалении в цикле 24 ответов у меня есть следующий фрагмент кода: private String toString(List<DrugStrength> aDrugStrengthList) { StringBuilder str = new StringBuilder(); for (DrugStrength aDrugStrength : aDrugStrengthList) { if (!aDrugStrength.isValidDrugDescription()) { ...
Является ли bool атомарным для чтения / записи в C#
обращается к буль поле atomic в C#? В частности, мне нужно поставить замок вокруг: class Foo { private bool _bar; //... in some function on any thread (or many threads) _bar = true; //... same for a read if (_bar) { ... } } ...
Любая хорошая реализация актеров для C#? [закрытый]
есть ли хорошая реализация субъекты конкурентной модели для .net / c#? Мне нужно оптимизировать процедуру c#, и я думаю, что модель actors идеально подходит для решения моей проблемы. К сожалению, у меня есть опыт только с реализацией scala. ...
Принуждение нескольких потоков использовать несколько процессоров, когда они доступны
Я пишу программу Java, которая использует много процессора из-за природы того, что он делает. Однако многие из них могут работать параллельно, и я сделал свою программу многопоточной. Когда я запускаю его, кажется, что он использует только один процессор, пока ему не понадобится больше, чем он использует другой процессор - есть ли что-нибудь, что я могу сделать в Java, чтобы заставить разные потоки работать на разных ядрах/процессорах? ...
Условие против ожидания уведомляет механизм
в чем преимущество использования интерфейса условий/реализаций по сравнению с обычным механизмом уведомления ожидания? Здесь я цитирую комментарии, написанные Дуг Леа: условные факторы из методов монитора объектов (wait, notify и notifyAll) в отдельные объекты, чтобы дать эффект наличия нескольких наборов ожидания для каждого объекта, объединяя их с использованием произвольных реализаций блокировки. Если блокировка заменяет использование синхронизированных методов и операторов, a Условие зам ...
Что конкретно делает во время выполнения.Гощед делать?
на версия до выхода go 1.5 из тура Go website есть кусок кода, который выглядит так. package main import ( "fmt" "runtime" ) func say(s string) { for i := 0; i < 5; i++ { runtime.Gosched() fmt.Println(s) } } func main() { go say("world") say("hello") } вывод выглядит так: hello world hello world hello world hello world hello что меня беспокоит, когда runtime.Gosched() удаляется, программа больше не печатает "мир". hello hello hello hello hello ...