在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Android/ 既然網(wǎng)絡(luò)操作要放在子線程中,那同步(sync)請(qǐng)求又是怎么阻塞線程的?

既然網(wǎng)絡(luò)操作要放在子線程中,那同步(sync)請(qǐng)求又是怎么阻塞線程的?

比如OkHttp的同步請(qǐng)求會(huì)一直等待execute()執(zhí)行完:

        Response response = client.newCall(request).execute();

是怎么做到的?難道execute()不是在子線程中執(zhí)行的嗎?

回答
編輯回答
空痕

execute() 阻塞當(dāng)前線程。你要用其他線程的話可以enqueue()。

題目中的 "要" 我理解為應(yīng)該。你不應(yīng)該在UI線程 execute() 。

2017年6月18日 03:29
編輯回答
墨小白

你可以把代碼寫一遍運(yùn)行一次看看嗎?

你對(duì)同步的理解有問(wèn)題,不是說(shuō)“同步”就只能發(fā)生在主線程。
這個(gè)同步只是說(shuō)在當(dāng)前線程執(zhí)行,這個(gè)線程可以是任意線程,但是你在主線程運(yùn)行的時(shí)候就是會(huì)報(bào)錯(cuò)。

2017年12月12日 17:14
編輯回答
陪我終

如果你這句話由子線程執(zhí)行,它并不會(huì)阻塞主線程啊。

2018年4月1日 11:46
編輯回答
吢涼

這個(gè)不是用來(lái)阻塞線程的

2017年8月16日 04:23
編輯回答
選擇

這只能看源碼了

2017年1月5日 02:29
編輯回答
萌面人
while(true){}

while死循環(huán),怎么樣

2018年3月16日 16:17