Из документации по Kotlin / Native Concurrent ( здесь ):
Параллелизм в Kotlin / Native
Kotlin / Native Runtime не поддерживает классическую модель параллелизма, ориентированную на потоки, с взаимоисключающими блоками кода и условными переменными, поскольку известно, что эта модель подвержена ошибкам и ненадежна. Вместо этого мы предлагаем набор альтернативных подходов, позволяющих использовать аппаратный параллелизм и реализовывать блокировку ввода-вывода. Эти подходы заключаются в следующем, и они будут подробно рассмотрены в следующих разделах:
- Работники с передачей сообщений
- Передача права собственности на подграф объекта
- Замораживание подграфа объекта
- Отрыв объекта подграфа
- Необработанная разделяемая память с использованием глобальных символов C
- сопрограммы для операций блокировки (не рассматриваются в этом документе)
Похоже, что замки не выставлены в Kotlin / Native по дизайну. Есть реализации (см. Lock.kt ), однако этот класс помечен internal
.
Однако , в KTOR есть многоплатформенная реализация блокировок (очень ограниченный doc , исходный код ). Он общедоступен, но помечен @InternalApi
, что может повлиять на его стабильность.
Вас также может заинтересовать эта ветка обсуждения KotlinLang: Замена для синхронизированной