Size: a a a

2020 August 19

VS

Vasily Shapenko in F# Chat
Идем дальше
источник

VS

Vasily Shapenko in F# Chat
Как понять
источник

T

TES in F# Chat
Vasily Shapenko
Т.е. слова пессимистичный и оптимистичный тебе ничего не говорят
нет, не говорят
источник

VS

Vasily Shapenko in F# Chat
Валидны ли изменения пользователя или нет
источник

VS

Vasily Shapenko in F# Chat
Особенно если они пересекаются с изменениями другого пользователя
источник

SB

S B in F# Chat
Ayrat Hudaygulov
Тут можно юзнуть очередь и мутабельный массив на другом конце

Мейлбокс с изменяемым массивом внутри

Массив с локом над ним
Исчо дата вершин и ретрай, если версия изменилась (другим потоком) за время твоей попытки что-то сделать.
источник

T

TES in F# Chat
Vasily Shapenko
Валидны ли изменения пользователя или нет
ну, можно где-то версию ячейки массива хранить. если версия отличается от ожидаемой - ошибку пользователю выдавать
источник

SB

S B in F# Chat
TES
ну, можно где-то версию ячейки массива хранить. если версия отличается от ожидаемой - ошибку пользователю выдавать
Зочем ошибку сразу? Ретраить можно немного. Это и будет оптимистичная блокировка. А лоад какой? В основном нагрузка на чтение или на запись?
источник

SB

S B in F# Chat
Если на запись, то блокировать надо явно.
источник

SB

S B in F# Chat
Если на чтение, то твоя идея пойдёт.
источник

T

TES in F# Chat
S B
Если на чтение, то твоя идея пойдёт.
но единственная её реализация без локов - это MailboxProcessor?
источник

SB

S B in F# Chat
TES
но единственная её реализация без локов - это MailboxProcessor?
Да забудь ты про эти мейлбоксы.
источник

SB

S B in F# Chat
Они тут непричем.
источник

T

TES in F# Chat
Что-то я почитал ваши коментарии и понял 2 вещи: код на F# не обязан быть иммутабельным и нужно юзать локи для синхронизации
источник

T

TES in F# Chat
И это полностью противоречит тому, что говорят видосы на ютубе и статьи о функциональном программировании
источник

SB

S B in F# Chat
TES
Что-то я почитал ваши коментарии и понял 2 вещи: код на F# не обязан быть иммутабельным и нужно юзать локи для синхронизации
Язык программирования тут непричем, это основы мультипоточки, они те же самые и на других языках.
источник

SB

S B in F# Chat
Ты про фундаментальные вещи спрашиваешь.
источник

T

TES in F# Chat
S B
Язык программирования тут непричем, это основы мультипоточки, они те же самые и на других языках.
я думал они фундоментальные только в объектно-ориентированных языках
источник

SB

S B in F# Chat
Реализации могут быть очень разные на разных языках, но суть в том, что ты выбираешь стратегию блокировки    исходя из характера нагрузки (людоминирует чтение или запись?)
источник

SB

S B in F# Chat
TES
я думал они фундоментальные только в объектно-ориентированных языках
Ты ошибался.
источник