我有一些像這樣的代碼:如何終止線程等待@synchronized目標C
doDatabaseFetch {
...
@synchronized(self) {
...
}
}
,並調用doDatabaseFetch爲用戶使用視圖許多對象。
我的問題是,我有一個操作(導航到下一個視圖),也需要數據庫獲取。我的問題是,它碰到同一個同步塊並等待它輪到!我理想的情況是喜歡這個操作來殺死所有等待的線程,或者給這個線程更高的優先級,以便它可以立即執行。
蘋果表示,
推薦的方式退出線程讓它正常退出它的入口點函數。儘管Cocoa,POSIX和Multiprocessing Services提供了直接殺死線程的例程,但是強烈建議不要使用這樣的例程。
所以我不認爲我應該殺死線程...但是如何讓他們正常退出,如果他們在等待一個同步塊?我必須編寫自己的信號來處理這種行爲嗎?
謝謝! Nick。
我會完全一致 - 我想我我正在序列化並行執行。實際上,我正在編寫一個iPhone數據庫訪問層,用於訪問sqlite,並且該設備在執行數據庫訪問時相當慢 - 但我想我只需要更聰明;) – 2009-05-26 10:39:30