История изменений
Исправление Nervous, (текущая версия) :
что immutable data structure и software transaction memory в данном случае ни разу не помогают и только мешаются меня огорчило
Просто выжимание последних соков из железа — не та задача, для решения которой они предназначены. Они предназначены для разрешения проблем, создаваемых shared mutable state, особенно в многопоточных средах — гонки данных, дедлоки и всё такое.
Immutable data structures делают из shared mutable state просто shared state и одним этим полностью исключают огромный шмат проблем; управление изменением состояния без явных блокировок — atoms, refs (где требуется координация изменения нескольких кусков shared state — собственно STM), agents для асинхронных изменений, — исключают другой немаленький шмат проблем.
У нас тут нет вообще никакого shared state, даже многопоточные реализации не используют никаких общих (между потоками) данных, каждый поток работает со своим куском.
Исправление Nervous, :
что immutable data structure и software transaction memory в данном случае ни разу не помогают и только мешаются меня огорчило
Просто выжимание последних соков из железа — не та задача, для решения которой они предназначены. Они предназначены для разрешения проблем, создаваемых shared mutable state, особенно в многопоточных средах — гонки данных, дедлоки и всё такое.
Immutable data structures делают из shared mutable state просто shared state и одним этим полностью исключают огромный шмат проблем; управление изменением состояния без явных блокировок — atoms, refs (где требуется координация изменения нескольких кусков shared state — собственно STM), agents для асинхронных изменений, — исключают другой немаленький шмат проблем.
У нас тут нет вообще никакого shared state, даже многопоточные реализации не используют никаких общих (между потоками) данных.
Исходная версия Nervous, :
что immutable data structure и software transaction memory в данном случае ни разу не помогают и только мешаются меня огорчило
Просто выжимание последних соков из железа — не та задача, для решения которой они предназначены. Они предназначены для разрешения проблем, создаваемых shared mutable state, особенно в многопоточных средах — гонки данных, дедлоки и всё такое.
Immutable data structures делают из shared mutable state просто shared state и одним этим полностью исключают огромный шмат проблем; управление изменением состояния без явных блокировок — atoms, refs (где требуется координация изменения нескольких кусков shared state — собственно STM), agents для асинхронных изменений, — исключают другой немаленький шмат проблем.