Может ли кто-нибудь объяснить мне работу и различия вышеперечисленных операций в многопоточности?
Сравнивать и свопировать vs test и устанавливать
Ответ 1
test-and-set
изменяет содержимое ячейки памяти и возвращает ее старое значение как одну атомную операцию.
compare-and-swap
атомно сравнивает содержимое ячейки памяти с заданным значением и , только если они являются одинаковыми, изменяет содержимое этой ячейки памяти на заданное новое значение.
Разница выделена жирным шрифтом.
Ответ 2
Тест и набор работают на бит, сравнение и своп работает в 32-битном поле.
Система z/TPF выступает за использование команды test и set (TS), потому что часто индикаторы блокировки являются битами, которые настроены для управления доступом к критическим областям системного кода. Команда test и set (TS) требует меньше регистров, чем команда сравнения и свопинга (CS), и требует меньше времени выполнения, потому что нужно установить только один байт.
и я нашел эти материалы: http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html
вы можете узнать больше о TSL с книгой под названием "Современная операционная система, глава 2"...