Публикации по теме 'concurrency'


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

Обнаружение условий гонки в Go
Обнаружение состояния гонки на примере обратного прокси Условия гонки — это незаметные, но разрушительные дефекты программного обеспечения. Chat GPT описывает это как: дефект программного обеспечения, возникающий, когда корректность программы зависит от относительного времени или чередования нескольких параллельных операций. Этот термин часто используется как мысленный ярлык для объяснения необъяснимого поведения программного обеспечения. Они — огромная трата времени и..

Современные сетевые уровни в iOS с использованием Async/Await
Современные сетевые уровни в iOS с использованием Async/Await Новый взгляд на сетевую тему с использованием модели параллелизма Swift Я должен признаться: создание сетевых слоев всегда было для меня захватывающей темой. С первых дней программирования для iOS, в начале 2007 года, каждый новый проект представлял новую возможность усовершенствовать или даже сломать весь подход, который я использовал до сих пор. Моя последняя попытка написать что-то на эту тему датирована 2017 годом..

Оптимистическая блокировка против пессимистической блокировки (на простом английском языке)
Оптимистическая блокировка и пессимистическая блокировка — это два метода, используемые для управления одновременным доступом в транзакционных системах, таких как реляционные базы данных и программная транзакционная память. Пессимистичная блокировка Пессимистическая блокировка заключается в блокировании доступа к части данных до прекращения модификации. Другими словами, поставить временную блокировку на…

Небольшой параллелизм: изучение возможностей параллелизма в Rust
Параллелизм — важная концепция программирования, позволяющая выполнять несколько действий параллельно друг другу. Это важная функция для создания эффективных и быстрых программ, особенно при работе с большими объемами данных. Rust, популярный язык системного программирования, предлагает мощные примитивы параллелизма, упрощающие создание параллельных приложений. В этой статье мы рассмотрим возможности параллелизма Rust и то, как их можно использовать для создания высокопроизводительных..

Вопросы по теме 'concurrency'

Сколько времени нужно, чтобы создать 1 миллион потоков в Haskell?
Насколько я понимаю, у Haskell есть зеленые потоки. Но насколько они легкие. Можно ли создать 1 миллион потоков? Или сколько времени потребуется для 100 000 потоков?
2981 просмотров

Многоядерное / параллельное программирование и .NET / Java
Я часто слышу о других языках, которые считаются более подходящими для многоядерного / параллельного программирования, например Clojure, Scala, Erlang и т. Д., Но я немного смущен тем, почему мне нужно беспокоиться о нескольких ядрах, разве...
509 просмотров
schedule 10.01.2024

Блокирующие блокировки и неблокирующие блокировки
Я думаю здесь: если у вас есть 2 потока, выполняющих FAST-операции, которые необходимо синхронизировать, не будет ли неблокирующий подход быстрее/лучше, чем подход с блокировкой/переключением контекста? Под неблокировкой я подразумеваю что-то...
2570 просмотров

Изоляция параллелизма транзакций. Почему я могу обновлять подмножество записей других транзакций?
Я пытаюсь понять проблему, с которой я столкнулся, и я не верю, что это возможно при работе с транзакциями, использующими уровень изоляции чтения. У меня есть таблица, которая используется в качестве очереди. В одном потоке (соединение 1) я вставляю...
1316 просмотров

Безопасно ли использовать HttpClient одновременно?
Во всех примерах использования HttpClient , которые я могу найти, он используется для одноразовых вызовов. Но что, если у меня постоянная клиентская ситуация, когда несколько запросов могут выполняться одновременно? В принципе, безопасно ли...
78629 просмотров

Динамически уменьшить емкость семафора
Я пытался использовать семафор для контроля количества запросов, которые может обработать моя служба. т.е. class Service : IDisposable { SemaphoreSlim s = new SemaphoreSlim(InitialCapacity); .... async void ProcessRequest() {...
733 просмотров

Работа с параллелизмом PostgreSQL с помощью Rails find_or_create
По какой-то причине этот код может создавать повторяющиеся игры, если разные пользователи запускают его одновременно: game = Game.find_or_create_by( status: Game::STATUS[:waiting], category_id: params[:category_id], private: 0 ) do...
768 просмотров

Разветвленная функция чтения IORef, кажется, останавливает основной поток
Я проводил некоторые эксперименты с параллелизмом и видимостью памяти и столкнулся с этим странным поведением (см. встроенные комментарии): module Main where import Data.IORef import Control.Concurrent import System.CPUTime import System.IO...
119 просмотров
schedule 06.11.2023

Как singleton Bean обслуживает одновременный запрос?
У меня вопрос о том, как синглтон-бины подробно обслуживают параллельные запросы. Я искал в StackOverflow этот вопрос. Это образец ссылки из stackoverflow , но я нашел только подробности высокого уровня. Мне нужна полная информация о том, как...
39835 просмотров

java.util.concurrent.atomic.AtomicInteger не переопределяет метод equals так же, как java.lang.Integer?
Я сталкивался со сравнением AtomicInteger экземпляров в своем коде и не нашел переопределенных методов равенства. Однако java.lang.Integer обеспечивает реализацию методов equals / hashCode . Пользователи должны выбрать альтернативный путь...
213 просмотров
schedule 04.12.2023

Видимость параллелизма Java
У меня есть вопрос о видимости в java. Видимость может появиться только в том случае, если у нас есть как минимум два потока, которые работают как минимум на 2 ядрах процессора. Это правильно? Каждое ядро ​​может кэшировать переменные в своих...
190 просмотров
schedule 28.12.2023

Как сломать time.sleep() в python concurrent.futures
Я играю с concurrent.futures . В настоящее время мое будущее звонит time.sleep(secs) . Похоже, что Future.cancel() делает меньше, чем я думал. Если будущее уже выполняется, то time.sleep() не отменяется им. То же самое для параметра...
4498 просмотров
schedule 04.12.2023

(A) синхронное поведение вызовов Spring jpa с CompletableFutures
Изменить: причиной этого является кеш 1-го уровня, как описано здесь . Решением будет ручная промывка после сохранения. У меня есть следующий код Java: Player updatedPlayer = playerRepository.save(player); CompletableFuture.runAsync(() -> {...
13 просмотров