Вопросы с тегом «concurrency»

В информатике параллелизм - это свойство систем, в которых множественные вычисления могут выполняться в перекрывающиеся периоды времени. Вычисления могут выполняться на нескольких ядрах в одном чипе, преимущественно с разделением по времени потоков на одном процессоре или выполняться на физически разделенных процессорах.

9
Node.js или Erlang
Мне очень нравятся эти инструменты, когда дело касается уровня параллелизма, с которым они могут справиться. Erlang / OTP выглядит гораздо более стабильным решением, но требует гораздо большего изучения и глубокого погружения в парадигму функционального языка. И похоже, что Erlang / OTP делает его намного лучше, когда речь идет о многоядерных …

13
Напишите программу, которая наверняка зайдет в тупик [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 5 лет назад . Уточните этот вопрос Недавно мне задали этот вопрос в интервью. Я ответил, …

8
Как дождаться нескольких фьючерсов?
Предположим , у меня есть несколько фьючерсных и нужно ждать , пока либо ни один из них не откажет или все из них успеха. Например: Пусть есть 3 фьючерсов: f1, f2, f3. В случае f1успеха и f2неудачи я не жду f3(и возвращаю ошибку клиенту). Если f2не удается пока f1и f3все …

2
Что именно делает runtime.Gosched?
В версии, предшествующей выпуску go 1.5 веб-сайта Tour of Go , есть фрагмент кода, который выглядит следующим образом. 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") } Результат …
86 concurrency  go 

7
Java: ExecutorService, который блокируется при отправке после определенного размера очереди
Я пытаюсь закодировать решение, в котором один поток создает задачи с интенсивным вводом-выводом, которые могут выполняться параллельно. Каждая задача имеет важные данные в памяти. Поэтому я хочу иметь возможность ограничивать количество задач, ожидающих выполнения в данный момент. Если я создам ThreadPoolExecutor следующим образом: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, 0L, …


5
Правильное использование параллельного словаря
Правильно ли я считаю, что это правильное использование параллельного словаря private ConcurrentDictionary<int,long> myDic = new ConcurrentDictionary<int,long>(); //Main thread at program startup for(int i = 0; i < 4; i++) { myDic.Add(i, 0); } //Seperate threads use this to update a value myDic[InputID] = newLongValue; У меня нет блокировок и т. …

4
Когда полезен ConcurrentSkipListSet?
Я только что видел эту структуру данных в API Java 6, и мне любопытно, когда это будет полезным ресурсом. Я готовлюсь к экзамену scjp, и я не вижу, чтобы он освещался в книге Кэти Сьерра, хотя я видел пробные экзаменационные вопросы, в которых это упоминается.

4
Получение возвращаемых значений из горутин
Приведенный ниже код дает ошибку компиляции, говорящую о неожиданном запуске: x := go doSomething(arg) func doSomething(arg int) int{ ... return my_int_value } Я знаю, что могу получить возвращаемое значение, если вызову функцию как обычно, без использования горутины. Или я могу использовать каналы и т. Д. У меня вопрос, почему невозможно …

6
Как прервать BlockingQueue, который блокирует take ()?
У меня есть класс, который берет объекты из a BlockingQueueи обрабатывает их, вызывая take()в непрерывном цикле. В какой-то момент я знаю, что больше никаких объектов в очередь не будет. Как мне прервать take()метод, чтобы он перестал блокироваться? Вот класс, обрабатывающий объекты: public class MyObjHandler implements Runnable { private final BlockingQueue<MyObj> …

5
Решение неприятно параллельных проблем с использованием многопроцессорной обработки Python
Как можно использовать многопроцессорность для решения неприятно параллельных задач ? Ужасно параллельные проблемы обычно состоят из трех основных частей: Чтение входных данных (из файла, базы данных, TCP-соединения и т. Д.). Выполните вычисления с входными данными, при этом каждый расчет не зависит от других расчетов . Записать результаты вычислений (в файл, …


7
Координация параллельного выполнения в node.js
Модель программирования node.js, управляемая событиями, несколько усложняет координацию выполнения программы. Простое последовательное выполнение превращается во вложенные обратные вызовы, что достаточно легко (хотя и немного запутано для записи). Но как насчет параллельного выполнения? Скажем, у вас есть три задачи A, B, C, которые могут выполняться параллельно, и когда они будут выполнены, …

3
Когда ConcurrentDictionary TryRemove вернет false
Будет ли он возвращать false только в том случае, если словарь не содержит значения для данного ключа, или он также вернет false из-за условий гонки потоков, например, другой поток добавляет / обновляет что-то? Вопрос в коде: ConcurrentDictionary<int, string> cd = new ConcurrentDictionary<int, string>(); // This might fail if another thread …
79 c#  .net  concurrency 

1
Для чего используются заборы памяти в Java?
Пытаясь понять, как SubmissionPublisher( исходный код в Java SE 10, OpenJDK | docs ), новый класс, добавленный в Java SE в версии 9, был реализован, я наткнулся на несколько вызовов API, о которых VarHandleраньше не знал: fullFence, acquireFence, releaseFence, loadLoadFenceИ storeStoreFence. Проведя некоторые исследования, особенно в отношении концепции барьеров / …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.