![][1]
_Перевод [статьи Мэтта Галлагера][2]._
В этой статье речь пойдёт об отсутствии потокового выполнения (threading) и инструментов синхронизации потоков в Swift. Мы обсудим предложение о внедрении «многопоточности» (concurrency) в Swift и то, как до появления этой возможности потоковое выполнение в Swift будет подразумевать использование традиционных мьютексов и общего изменяемого состояния (shared mutable state).
Использовать мьютекс в Swift не особенно сложно, но на этом фоне хотелось бы выделить тонкие нюансы производительности в Swift — динамическое выделение памяти во время захвата замыканиями. Мы хотим, чтобы наш мьютекс был быстрым, но передача замыкания для исполнения внутри мьютекса может снизить производительность в 10 раз из-за дополнительных расходов памяти. Давайте рассмотрим несколько способов решения данной проблемы.
[Читать дальше →][3]
[1]:
https://habrastorage.org/web/fbb/bce/eb1/fbbbceeb15c940ba9d81ea140aa98700.png
[2]:
https://www.cocoawithlove.com/blog/2016/06/02/threads-and-mutexes.html
[3]:
https://habrahabr.ru/post/336260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut