Multithreaded Functional Programming in Swift

Ich habe in letzter Zeit Byte-Arrays in Swift 2.1 manipuliert und sehe mich oft dabei, Code wie diesen zu schreiben:

// code to add functions to a [UInt8] object
extension CollectionType where Generator.Element == UInt8 {

    func xor(with byte: UInt8) -> [UInt8] {
        return map { $0 ^ byte }
    }
}

// example usage: [67, 108].xor(with: 0) == [67, 108]

ibt es eine einfache Möglichkeit, dieses @ zu parallelisieremap call, damit mehrere Threads gleichzeitig auf nicht überlappende Bereiche des Arrays zugreifen können?

Ich könnte Code schreiben, um das Array manuell in Unterarrays zu unterteilen und @ aufzurufemap auf jedem Unterarray in verschiedenen Threads. Aber ich frage mich, ob es in Swift ein Framework gibt, das die Division automatisch durchführt, damap ist ein Funktionsaufruf, der in einer thread-sicheren Umgebung ohne Nebenwirkungen ausgeführt werden kann.

Notizen erklären:

Der Code muss nur auf einem @ funktionier[UInt8] Objekt, nicht unbedingt jedesCollectionType. Ich schreibe diesen Code nur, um Swift zu lernen, nicht für Eingaben aus der realen Welt. Schließlich läuft xor extrem schnell, ohne dass eine Parallelisierung erforderlich ist.Wenn unbedingt erforderlich, kann die obige Funktion im Kontext gesehen werdenHie, wo es verwendet wird, um Set 1, Challenge 3 des @ zu lösMatasano Crypto Challenges.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage