Информация об изменениях

Сообщение Re: Про варианты многопоточного взаимодействия... от 25.10.2023 4:43

Изменено 25.10.2023 4:46 vsb

Re: Про варианты многопоточного взаимодействия...
Удобней всего запускать отдельный микросервис в отдельной программе и общаться по HTTP, а блокировки пускай база разруливает через транзакции. А ещё удобней вообще ничего не делать, и пойти кушать пиццу. Но не всегда это возможно. Поэтому тут вопрос об удобстве не совсем верный. Блокировки или лок-фри алгоритмы это зло, но от него порой не уйти, они дают максимальную производительность.

Я бы так классифицировал подходы:

1. Доступ к общей памяти (блокировки или локфри)

2. Обмен сообщениями (ерланг и его клоны)

3. Транзакционная память (ныне штука почти не встречающаяся, но любопытно)
Re: Про варианты многопоточного взаимодействия...
Удобней всего запускать отдельный микросервис в отдельной программе и общаться по HTTP, а блокировки пускай база разруливает через транзакции. А ещё удобней вообще ничего не делать, и пойти кушать пиццу. Но не всегда это возможно. Поэтому тут вопрос об удобстве не совсем верный. Блокировки или лок-фри алгоритмы это зло, но от него порой не уйти, они дают максимальную производительность.

Я бы так классифицировал подходы:

1. Доступ к общей памяти (блокировки или локфри). Самый сложный в реализации, но самый производительный.

2. Обмен сообщениями (ерланг и его клоны). Требует качественной библиотечной поддержки, неизбежно несёт некоторые расходы.

3. Транзакционная память (ныне штука почти не встречающаяся, но любопытно). Этим не пользовался, предполагаю, что этот подход самый простой и понятный в использовании, но для производительности нужна поддержка на уровне железа.