多執行緒使用注意事項

2021-05-26 15:51:26 字數 719 閱讀 2141

在開發過程中經常使用到多執行緒。對ios的多執行緒有很多不解的地方,這裡暫且記錄下來。具體原因有待以後慢慢研究。

-(void)scanloop

}[pool release];

}以asyncudpsocket物件為引數的處理函式,如下所示:

-(void)processipscanwithsocket:(asyncudpsocket*)_udpsocket

processipscanwithsocket:_udpsocket]還是呼叫

[self

performselectoronmainthread:

@selector

(processipscanwithsocket:) withobject:_udpsocket

waituntildone:

no];

都得不到伺服器返回的響應訊息。經過除錯,伺服器是收到訊息的,並且成功傳送返回包。在程式中得不到響應,猜想因為是asyncudpsocket物件的delegate無效。如果將建立asyncudpsocket物件的**放在主線程處理,一切就正常了。可以得到從伺服器返回的資料。

將以上**改為下面的**,一切都正常。**如下:

-(void)processipscanwithsocket

//執行緒處理函式

-(void)scanloop

}[pool release];

}

多執行緒程式設計注意事項

1 明確目的,為什麼要使用多執行緒?如果是由於單執行緒讀寫或者網路訪問 例如http訪問網際網路 的瓶頸,可以考慮使用執行緒池。如果是對不同的資源 例如socket連線 進行管理,可以考慮多個執行緒。2 執行緒使用中要注意,如何控制線程的排程和阻塞,例如利用事件的觸發來控制線程的排程和阻塞,也有用訊...

多執行緒的使用與注意事項

多執行緒程式的控制模型可以參考這裡,一般情況下都是使用 管理者 工人模型,這裡,我們使用iphone sdk中的 nsthread 來實現它。接下來,在 tutorialprojectviewcontroller.h 檔案中建立各個ui控制項的 iboutlets.123 4567 891011 1...

多執行緒的使用與注意事項

多執行緒的使用與注意事項 從例子入手 多執行緒程式的控制模型可以參考 url 這裡 url 一般情況下都是使用 管理者 工人模型,這裡,我們使用iphone sdk中的 nsthread 來實現它。img 接下來,在 tutorialprojectviewcontroller.h 檔案中建立各個ui...