Подтвердить что ты не робот

Общие шаблоны для работы с ограничениями thread-local gc?

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

Мне интересно, существуют ли какие-то устоявшиеся "шаблоны дизайна" в Nim, как справляться с этими ограничениями? Может быть, можно рассмотреть типичный пример, который требует обмена/взаимодействия между потоками и для отображения возможных идиоматических решений такой проблемы?

Мои собственные попытки придумать хорошие решения для этого не были действительно успешными до сих пор и привели к этому более конкретному вопросу о TChannel.

4b9b3361

Ответ 1

Действительно широкий ответ: это, похоже, противоречит принципам дизайна Nim. Nim полностью избегает любых проблем обмена/взаимодействия между потоками, удаляя это как возможность. Принцип дизайна "остановить мир" не существует. Встроенная асинхронная передача сообщений должна быть достаточной.

Какие ограничения упоминаются в ссылочных статьях, как представляется, являются ограничениями в дизайне или подходе к проблемам.

Также за время, прошедшее с момента публикации этого вопроса, я вижу, что был ответ на связанный вопрос TChannel. Это решило вашу проблему?

@bluenote10 Возможно ли, что вы можете лучше определить тип проблемы, с которой вы сталкиваетесь? Теперь кажется, что этот вопрос очень широк. Также жаль, что у меня нет ответа, чтобы ответить прямо на вас.