Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor…
Когда читаешь про многопоточность, кажется, что способов — десятки, и каждый требует отдельного изучения.
На самом деле их ровно три. Всё остальное — реализации и комбинации.
Эта статья — попытка навести порядок в голове. После неё вы сможете:
-
за 5 секунд классифицировать любой подход к конкурентности;
-
понимать, почему Erlang выбрал акторы, а Java предлагает
synchronized; -
не изобретать велосипеды и не зацикливаться на «единственно правильном» решении;
-
проектировать многопоточный код, держа в голове простую модель.
