imacswift’s blog

There is no article rambling

並列処理(XCODE Version 8.0 (8A218a))






並列処理の動作テスト用プログラムです。

シンプルにできたので公開します。

(playgroundではなく、Single View Applicationで実行してください、私はボタン一つつけて実行しました。)

 

 

 let concurrentQueue = DispatchQueue(label: "test.queue", qos: .background , attributes: .concurrent)
        for i in 1 ... 10{
            sleep(1)
            print("before concurrentQueus.sync",i)
        }
        concurrentQueue.async {
            for i in 1 ... 10{
                sleep(1)
                print("in concurrentQueus.sync",i)
            }
        }
        for i in 1 ... 10{
            sleep(1)
            print("after concurrentQueus.sync",i)
        }
 ||<


結果は
>||
before concurrentQueus.sync 1
before concurrentQueus.sync 2
before concurrentQueus.sync 3
before concurrentQueus.sync 4
before concurrentQueus.sync 5
before concurrentQueus.sync 6
before concurrentQueus.sync 7
before concurrentQueus.sync 8
before concurrentQueus.sync 9
before concurrentQueus.sync 10
after concurrentQueus.sync 1
in concurrentQueus.sync 1
after concurrentQueus.sync 2
in concurrentQueus.sync 2
after concurrentQueus.sync 3
in concurrentQueus.sync 3
after concurrentQueus.sync 4
in concurrentQueus.sync 4
after concurrentQueus.sync 5
in concurrentQueus.sync 5
after concurrentQueus.sync 6
in concurrentQueus.sync 6
after concurrentQueus.sync 7
in concurrentQueus.sync 7
after concurrentQueus.sync 8
in concurrentQueus.sync 8
after concurrentQueus.sync 9
in concurrentQueus.sync 9
after concurrentQueus.sync 10
in concurrentQueus.sync 10

で、「in」と「after」が同時に処理をされていることが分かります。