Apple опубликовала предложение добавить модель акторов в язык программирования Swift. Цель состоит в том, чтобы предоставить механизм, предотвращающий скачки данных в модели параллелизма Swift.

Предложение Swift Evolution находится на стадии активного рассмотрения, размещено на GitHub, отмечает, что модель актора предоставит возможность использовать совместно используемое изменяемое состояние, обеспечивая при этом статическое обнаружение скачков данных и других распространенных ошибок параллелизма.

Актер – это ссылочный тип (введенный ключевым словом actor :), который защищает доступ к его изменяемому состоянию. В ответ на сообщения субъект может принимать локальные решения, отправлять больше сообщений, создавать больше субъектов и решать, как отвечать на следующее полученное сообщение. Акторы могут изменять свое собственное частное состояние, но влиять друг на друга только косвенно через обмен сообщениями, тем самым устраняя необходимость в синхронизации на основе блокировок.

А дорожная карта параллелизма для языка Swift, опубликованного прошлой осенью, содержалось предложение об актерах и их изоляции. А предложение структурированного параллелизма for Swift вводит параллельные задачи и обеспечивает защиту от гонки данных для функций и закрытий. Хотя эта модель подходит для некоторых шаблонов проектирования, включая параллельные сопоставления и параллельные шаблоны обратного вызова, она ограничена работой с состоянием, захваченным замыканиями. Хотя Swift включает классы, которые предоставляют механизм для объявления изменяемого состояния, которое является общим для всей программы, классы трудно использовать в параллельных программах.

Предложение актера будет рассматриваться до 29 марта. Процесс рассмотрения начался 15 марта.

Авторские права © 2021 IDG Communications, Inc.


#Apple #предлагает #модель #акторов #для #параллелизма #Swift

Source link