GCD可以設置線程最大並發量


-(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);       
     });   
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM