NSCondition 多執行緒解決生產者消費者問題

2021-07-10 05:14:19 字數 813 閱讀 7645

#import "viewcontroller.h"

@inte***ce viewcontroller ()

//資料緩衝區

@property (strong, nonatomic) nsmutablearray *products;

//執行緒鎖

@property (strong, nonatomic) nscondition *condition;

/* 使用nscondition能夠解決執行緒的生產者消費者問題

基本思路是,首先建立nscondition例項,然後消費者取得鎖,取產品,如果沒有,則wait,這時會釋放鎖,直到有執行緒喚醒它去消費,最後unlock;

生產者製造產品,首先也是取得鎖,然後生產,在發signal,這樣可以喚醒wait的消費執行緒

*/@end

@implementation viewcontroller

- (void)viewdidload

-(void)touchesbegan:(nsset*)touches withevent:(uievent *)event

}//生產資料

-(void)createproducer

}//消費資料

-(void)createconsuser

}- (nsmutablearray *)products

return _products;

}- (nscondition *)condition

return _condition;

}@end

python的多執行緒原來可以這樣解

目錄 多執行緒類似於同時執行多個不同程式,多程式設計客棧執行緒執行有如下優點 使用執行緒可以把佔據長時間的程式中的任務放到後台去處理。使用者介面可以更加吸引人,比如使用者點選了乙個按鈕去觸發某些事件的處理,可以彈出乙個進度條來顯示處理的進度。程式的執行速度可能加快。在一些等待的任務實現上如使用者輸入...

多執行緒 多執行緒原理

我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...

多執行緒(一) tomcat 多執行緒

web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...