-(void)dispatchSignal{
//crate的value表示,最多幾個資源可訪問
dispatch_semaphore_t semaphore = dispatch_semaphore_create(2);
dispatch_queue_t quene = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//任務1
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog
(@
"run task 1"
);
sleep(1);
NSLog
(@
"complete task 1"
);
dispatch_semaphore_signal(semaphore);
});<br>
//任務2
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog
(@
"run task 2"
);
sleep(1);
NSLog
(@
"complete task 2"
);
dispatch_semaphore_signal(semaphore);
});<br>
//任務3
dispatch_async(quene, ^{
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog
(@
"run task 3"
);
sleep(1);
NSLog
(@
"complete task 3"
);
dispatch_semaphore_signal(semaphore);
});
}
