Jestem wielkim fanem języka Swift (jego aktualna wersja to 5.4 i nadchodzi już wersja 5.5 ze wsparciem asynchronicznym i równoległym). Ponieważ SPOJ testuje programy na Swift 4.2.2 i przypuszczam że administratorom raczej nie będzie się chciało jego upgrade’ować zatem czy jest możliwość (do ko go się zwrócić i gdzie?) aby mieć dostęp do danych testowych zadań (czy jest to możliwe?), aby samemu dokładnie testować swoje rozwiązania z nowymi featurami języka (np. szczególnie ciekawe są rozwiązania wykorzystujące mechanizm Combine (dla algorytmów reaktywnych czyli funkcyjnych i asynchronicznych) w wersji 5 - algorytmy równoległe i współbieżne da się zrobić w wersji 4 tylko w GCD i Operations)?
Na ideone poniższy kod ujawnia że programy są dopuszczane tylko do jednego cora i zablokowana jest współbieżność na nim (A jak jest tutaj? - może się mylę - OS dopuszcza pracę tylko w jednym wątku?).
import Foundation
DispatchQueue(label: "zero").async {
(1...1000).forEach { _ in
print(0, terminator: "")
}
}
DispatchQueue(label: "one").async {
(1...1000).forEach { _ in
print(1, terminator: "")
}
}
DispatchQueue(label: "two").async {
(1...1000).forEach { _ in
print(2, terminator: "")
}
}
sleep(1)
created
last reply
- 1
reply
- 506
views
- 2
users