есть свифт, реакт нейтив и замарин. больше под иос ничего нет. Если в котлин.нейтив можно легко подключать контролы из pods -- то можно и его добавить (не слежу за ним). Есть другие подходы, аля флаттер - это когда ты забиваешь на миллион 3рд пати либ и контролов, написанных под иос.
есть свифт, реакт нейтив и замарин. больше под иос ничего нет. Если в котлин.нейтив можно легко подключать контролы из pods -- то можно и его добавить (не слежу за ним). Есть другие подходы, аля флаттер - это когда ты забиваешь на миллион 3рд пати либ и контролов, написанных под иос.
это другой подход — с таким подходом много есть кроссплатформ фраемворков, которым не нужны нативные контролы и опыт. Свои минусы и плюсы, лично для меня, когда я фрилансил под мобилки — это было минусом, особенно когда тебе приходит детаельная спека на разный гуй под андроид и иос, максимально нативный
Вещь специфичная, я с ней работал. Кстати там свой форк Mono (называется Uno). Он примечателен тем, что можно делать инлайн инжекции кода на Java / Swift / C++ прямо в C# коде)
Последовательность действий такая: первый тред пишет x = true; второй тред пишет y = true; третий тред читает x = true, но не видит y = true, не инкрементит z; четвёртый делает то же самое, но в другую сторону.
Это IRIW: independent reads of independent writes. Без глобальных гарантий на sequential consistency (поверх *всех* атомарных операций), на отдельные пары release-acquire глобальных гарантий нет ;)
Последовательность действий такая: первый тред пишет x = true; второй тред пишет y = true; третий тред читает x = true, но не видит y = true, не инкрементит z; четвёртый делает то же самое, но в другую сторону.
Последовательность действий такая: первый тред пишет x = true; второй тред пишет y = true; третий тред читает x = true, но не видит y = true, не инкрементит z; четвёртый делает то же самое, но в другую сторону.
А почему 4-ый поток не увидит нужных данных, там же чтение тоже идет по acuqire