Три способа менять один объект из нескольких потоков. Больше нетMutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor…Когда читаешь про многопоточность, кажется, что способов — десятки, и каждый требует отдельного изучения.На самом деле их ровно три. Всё остальное — реализации и…
Модуль weakref позволяет создавать "слабые" ссылки на объекты."Слабой" ссылки не достаточно, чтобы объект оставался "живым": когда на объект ссылаются только "слабые" ссылки, сборщик мусора удаляет объект и использует память для других объектов. Однако, пока объект не удалён, "слабая"…
Сразу скажу, что статья не про потоки, а про события в контексте потоков в .NET. Поэтому я не буду пытаться организовать работу потоков правильно (со всеми блокировками, колбэками, отменой и тд). Для правильной организации потоков есть другие статьи. Все примеры будут написаны на языке C# для версии фреймворка 4.0 (на 4.6 все несколько проще, но все еще есть много проектов на 4.0). Так же буду пытаться придерживаться версии C# 5.0. Читать дальше →
Объяснение легковесных потоков в 200 строк на Rust Легковесные потоки (ligthweight threads, coroutines, корутины, green threads) являются очень мощным механизмом в современных языках программирования. В этой статье Carl Fredrik Samson попытался реализовать рантайм для легковесных потоков на Раст, попутно…