Публикации по теме '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 просмотров
schedule
27.11.2023
Многоядерное / параллельное программирование и .NET / Java
Я часто слышу о других языках, которые считаются более подходящими для многоядерного / параллельного программирования, например Clojure, Scala, Erlang и т. Д., Но я немного смущен тем, почему мне нужно беспокоиться о нескольких ядрах, разве...
509 просмотров
schedule
10.01.2024
Блокирующие блокировки и неблокирующие блокировки
Я думаю здесь: если у вас есть 2 потока, выполняющих FAST-операции, которые необходимо синхронизировать, не будет ли неблокирующий подход быстрее/лучше, чем подход с блокировкой/переключением контекста?
Под неблокировкой я подразумеваю что-то...
2570 просмотров
schedule
13.12.2023
Изоляция параллелизма транзакций. Почему я могу обновлять подмножество записей других транзакций?
Я пытаюсь понять проблему, с которой я столкнулся, и я не верю, что это возможно при работе с транзакциями, использующими уровень изоляции чтения. У меня есть таблица, которая используется в качестве очереди. В одном потоке (соединение 1) я вставляю...
1316 просмотров
schedule
19.11.2023
Безопасно ли использовать HttpClient одновременно?
Во всех примерах использования HttpClient , которые я могу найти, он используется для одноразовых вызовов. Но что, если у меня постоянная клиентская ситуация, когда несколько запросов могут выполняться одновременно? В принципе, безопасно ли...
78629 просмотров
schedule
16.01.2024
Динамически уменьшить емкость семафора
Я пытался использовать семафор для контроля количества запросов, которые может обработать моя служба. т.е.
class Service : IDisposable {
SemaphoreSlim s = new SemaphoreSlim(InitialCapacity);
....
async void ProcessRequest() {...
733 просмотров
schedule
26.12.2023
Работа с параллелизмом PostgreSQL с помощью Rails find_or_create
По какой-то причине этот код может создавать повторяющиеся игры, если разные пользователи запускают его одновременно:
game = Game.find_or_create_by(
status: Game::STATUS[:waiting],
category_id: params[:category_id],
private: 0
) do...
768 просмотров
schedule
03.11.2023
Разветвленная функция чтения 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 просмотров
schedule
23.10.2023
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 просмотров
schedule
19.01.2024