9.11.20202 min

Redakcja Bulldogjob

Swift przedstawił nowy model współbieżności

Twórcy języka Swift opublikowali roadmapę, która przedstawia nowy model, umożliwiający lepsze programowanie współbieżne.

Swift przedstawił nowy model współbieżności

Twórcy języka Swift przedstawili właśnie plany na stworzenie nowego modelu współbieżności. Ma on polepszyć jakość i komfort programowania współbieżnego, tak aby było ono bardziej wydajne i bezpieczne. Pojawiła się zatem nowa roadmapa, która opisuje zmiany, mające pomóc w osiągnięciu tego celu. Twórcy zaznaczają jednak, że nie mają zamiaru przedstawiać manifestu, demonstrującego kilka możliwych podejść do problemu — kierunek został już obrany, a teraz trzeba tylko wyruszyć w drogę.


Oczekiwane rezultaty

Zmiany będą polegały na implementacji asynchronicznych funkcji oraz aktorów — usprawnienia te zostaną zaproponowane oddzielnie, ale w wielu przypadkach będą one na sobie polegać. Końcowe etapy pracy zakładają osiągnięcie następujących rezultatów:

  • Sprawienie, że programowanie asynchroniczne będzie wygodne w użyciu i zrozumiałe
  • Zapewnienie developerom Swifta zestawu odpowiednich narzędzi i technik, jeżeli chodzi o programowanie współbieżne
  • Poprawa działania kodu asynchronicznego przez optymalizację w czasie kompilacji 
  • Eliminacja hazardu i zakleszczenia w taki sam sposób, w jaki Swift radzi sobie z bezpieczeństwem pamięci.


Przedstawianie zmian

Twórcy zakładają, że wprowadzenie usprawnień będzie musiało potrwać kilka wydań. Funkcje zostaną wprowadzone w dwóch fazach: pierwsza przedstawi składnię async i aktorów, co pozwoli użytkownikom na organizację swojego kodu wokół nich, w sposób który zredukuje hazard. 

Druga faza natomiast wymusi całkowitą izolację aktorów, eliminację hazardu oraz szereg nowych funkcji, umożliwiających wydajną i ergonomiczną współpracę między aktorami, tak aby izolacja miała zastosowanie w praktyce. 


Faza pierwsza

Przyjrzymy się tutaj niektórym szczegółom fazy pierwszej. Po pierwsze mamy model async/await oparty na współprogramach. Funkcje mogą być dzięki niemu asynchroniczne i oczekiwać wyników od innych asynchronicznych funkcji, co pozwala na wyrażenie takiego kodu w bardziej prostolinijny sposób.  

Po drugie, API Task i ustrukturyzowana współbieżność wprowadzą koncepcję zadań do standardowej biblioteki. API te pozwoli na tworzenie zadań odłączonych od głównego toku wykonania dla dynamicznego tworzenia zadań potomnych i mechaniki usuwającej taski oraz ustawiającej priorytety. Dostaniemy też tutaj mechanizmy do oczekiwania na wartości pochodzące z wielu zadań potomnych. 

W fazie pierwszej zostanie również wprowadzony wstępnie model izolacji aktorów. Pozwoli on na izolację stanów dla programów współbieżnych, dając podwaliny dla rozwijania pełnej izolacji aktorów — mechanizmu, dzięki któremu da się wyeliminować hazard. Oprócz tego, mamy tutaj jeszcze obsługę async, która przedstawi możliwość zadeklarowania synchronicznej funkcji aktora jako handlera asynchronicznego. 

Więcej szczegółów na temat fazy pierwszej znajdziecie tutaj. Jak wspomniano wcześniej, druga faza będzie rozwinięciem usprawnień przedstawionych w części pierwszej: wprowadzeniem całkowitej izolacji aktorów i wyeliminowaniem data race. 


Podsumowanie

Zmiany przedstawione w roadmapie wyglądają naprawdę dobrze i jeżeli twórcy wprowadzą je tak, jak obiecują, to znacznie usprawni to wszystko doświadczenie programowania współbieżnego w Swift. Wystarczy teraz poczekać na pierwsze wydania, które będą zawierać nowo zaproponowany model oraz szczegóły dotyczące fazy drugiej.

<p>Loading...</p>

Powiązane artykuły

Dziel się wiedzą ze 160 tysiącami naszych czytelników

Zostań autorem Readme

ONWELO SA

Senior iOS Developer

senior

12 000 - 22 000 PLN

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 25.02.2022

Dobrze
iOSMVVMSwift 5

ONWELO SA

Mid iOS Developer

medium

8 000 - 17 000 PLN

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 25.02.2022

Dobrze
iOSMVVMSwift 5

ONWELO SA

Junior iOS Developer

junior

5 000 - 13 000 PLN

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 25.02.2022

Dobrze
iOSMVVMSwift 5

ViacomCBS

Senior iOS Engineer

senior

Brak widełek

Umowa o pracę

Warszawa

Ważna do 3.02.2022

Bardzo dobrze
SwiftXcodeiOS
Dobrze
RxSwiftTesting Mobile AppsGit
Początkująco
Objective-C

Luxoft Poland

Temenos TPH Analyst

medium

Brak widełek

Kontrakt B2BUmowa o pracę

Warszawa

Ważna do 8.02.2022

Swift

Luxoft Poland

SWIFT Payments Analyst (Temenos)

medium

Brak widełek

Kontrakt B2BUmowa o pracę

Warszawa

Ważna do 3.02.2022

Swift

LeverX Group

IOS Developer

medium

Znamy widełki

Umowa o pracę

Wrocław

Ważna do 20.02.2022

Bardzo dobrze
iOS
Dobrze
C++Core DataSwift

7N

Senior iOS Developer 0,5 etatu

senior

16 300 - 19 500 PLN

Kontrakt B2B

Praca zdalna 100%

Ważna do 4.02.2022

Dobrze
SwiftGitHubREST
Początkująco
Fastlane

TP Servglobal Ltd

iOS Developer – Cyprus, Greece or Remote

medium

Znamy widełki

Umowa o pracę

Praca zdalna 100%

Ważna do 3.02.2022

Bardzo dobrze
SwiftiOSXcode

Bank Millennium

iOS/Mobile Developer

senior

12 000 - 26 000 PLN

Kontrakt B2B

Warszawa

Ważna do 11.02.2022

Bardzo dobrze
SwiftObjective-CXcode
Dobrze
CocoaPodsCarthageJenkins