ios線程鎖有哪幾種 http異步請求和多線程的區(qū)別?
http異步請求和多線程的區(qū)別?異步:異步和同步是相對的。同步是順序執(zhí)行。在一次執(zhí)行之后,下一次需要等待和協(xié)調(diào)。異步意味著它們彼此獨立,在等待事件的過程中繼續(xù)做自己的事情。無需等待事件完成后才能工作。
http異步請求和多線程的區(qū)別?
異步:異步和同步是相對的。同步是順序執(zhí)行。在一次執(zhí)行之后,下一次需要等待和協(xié)調(diào)。異步意味著它們彼此獨立,在等待事件的過程中繼續(xù)做自己的事情。無需等待事件完成后才能工作。線程是實現(xiàn)異步的一種方法。異步意味著調(diào)用方法的主線程不需要等待另一個線程同步完成,這樣主線程就可以做其他事情。多線程:多線程是程序設(shè)計的邏輯層概念。它是一段在進(jìn)程中并發(fā)運(yùn)行的代碼。多線程可以在線程之間切換。異步和多線程是不相等的。異步是最終的目標(biāo)。多線程只是實現(xiàn)異步的一種手段。異步是將調(diào)用請求發(fā)送給被調(diào)用方,調(diào)用方可以在不等待結(jié)果返回的情況下執(zhí)行其他操作。為了實現(xiàn)異步,我們可以使用多線程技術(shù),或者將它交給另一個進(jìn)程。
怎么讓線程能夠異步的執(zhí)行呢?
沒有分?jǐn)?shù)?有個主意
!從主線程新線程開始一個分支線程
使用delegate執(zhí)行要在分支線程中操作的方法,
使用BeginInvoke執(zhí)行修改后的委托,得到IAsyncResult的結(jié)果
并始終判斷IAsyncResult的iscompleted
如果執(zhí)行完成,使用endinvoke得到結(jié)果異步操作,然后使用主線程上的invoke執(zhí)行來顯示結(jié)果
(應(yīng)該是主線程,只做一件事,打開一個線程。異步調(diào)用和等待異步結(jié)束,都是分支線程做的,所以主線程不會裝死,當(dāng)主線程顯示結(jié)果時,直接操作是有問題的,應(yīng)該是跨線程的!僅使用調(diào)用)