執行緒問題,如何非同步資料載入後進行賦值

2021-07-24 19:38:46 字數 1074 閱讀 9185

在請求資料中,會遇到網路進行載入資料,然後將資料顯示出來,但是網路載入一般都為非同步,這個牽涉到執行緒的問題了,這是我今天遇到的問題

[self connectionaction:photofram.photoframeid selectframename:photofram.photoframename selectframepassword:photofram.photoframepassword];

//方法2將nsuserdefaults的值賦值給host,

nsuserdefaults *user = [nsuserdefaults standarduserdefaults];

nsstring *photoip = [user objectforkey:@"photoip"];

self.host = photoip;

問題:方法1的是非同步執行緒,當執行到方法2時,方法1還沒有執行,所以方法2賦值時為空

解決方案:

需要用到訊號量

在方法1的非同步執行緒裡新增三個訊號量,如**就ok了,

// 建立訊號量

dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);

// 開始網路請求任務

// 在網路請求任務成功之前,訊號量等待中

dispatch_semaphore_wait(semaphore, dispatch_time_forever);

});

如何非同步獲取多執行緒返回的資料?

說一下callable這個介面的理解?說一下future介面的理解?說一下futuretask類的理解?說一下completionservice介面的理解?1.通過callable future,callable負責執行返回,future負責接收。callable介面物件可以交給executorse...

關於jQuery非同步重新整理資料,載入速度問題

jquery中有便捷的方法來執行非同步操作。這段時間做了乙個需要頻繁從資料庫獲取資料,且資料量比較大的頁面。一開始重新整理事件間隔為5秒鐘,當頁面載入速度趕不上重新整理的速度,導致頁面反映遲緩。優化思路 1 檢查sql。速度慢多半是因為sql獲取資料的效率不高,用高於實際情況的資料量進行測試。關於s...

因壞道問題導致的硬碟故障如何進行資料恢復?

根據百科做出的定 釋 硬碟出現壞道除了硬碟本身質量以及老化的原因外,還有很大程度上是由於平時使用不當造成的。硬碟壞道 根據其性質可以分為 邏輯壞道 和物理壞道兩種,簡單來說,邏輯壞道是由於一些 軟體或者使用不當造成的,這種壞道可以使用軟體修復,而物理壞道則是硬碟碟片本身的磁介質出現問題,例如碟片有物...