簡體   English   中英

為什么在iOS中打開套接字連接時無需打開新線程

[英]Why There Is No Need To Open A New Thread When Opening A Socket Connection In iOS

在開發與套接字連接相關的Android應用程序之前,我總是需要打開一個新的Thread來處理它們,否則肯定會發生錯誤。

另一方面,當我在iOS應用程序中執行相同的操作時,無需打開新的線程來處理這些套接字連接,並且我的UI仍可以平穩運行。 我不明白為什么會這樣。

我已經進行了一些研究,但找不到任何可解釋此問題的資料。

請幫助我理解這一點。謝謝!

正如@Fonix所指出的,如果您使用的是GCDAsyncSocket,它將為您處理並發性。 但是,如果您閱讀GCDAsyncSocket代碼,您會發現它也不會生成任何線程。 iOS中幾乎沒有東西會生成自己的線程。 引用NSThread幾乎總是一個錯誤。 iOS並發基於隊列並由GCD(大中央調度)管理。 隊列最終確實會映射到線程,但這是內部細節,而不是1:1映射。

您將要閱讀《 並發編程指南》 ,尤其是“從線程遷移”,以了解iOS如何管理並發。 它與Android完全不同,這種誤解通常會造成很多破碎的iOS代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM