真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

IOS多線程漫漫談(ProcessandThread)

前言 

創(chuàng)新互聯(lián)建站專注于山海關(guān)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供山海關(guān)營銷型網(wǎng)站建設(shè),山海關(guān)網(wǎng)站制作、山海關(guān)網(wǎng)頁設(shè)計、山海關(guān)網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造山海關(guān)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供山海關(guān)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

時間就是一把殺豬刀,歲月更是毫不留情的在我英俊的臉上留下痕跡!恨呀,這就開始了我的社會之旅。2015年上海,在拉鉤網(wǎng)中投遍了IOS實習(xí)崗,兩家面試!在面試中受到的打擊著實不清呀,其中心酸就不一一道來了。在學(xué)校時候?qū)W的不認(rèn)真,學(xué)習(xí)的時候又沒有筆記,知識在又沒有實際的項目實踐,最后的結(jié)果就是什么都知道都聽過,但是具體的什么都說不出來!所以毅然決然的決定投身于寫博客的大隊伍中,與各位共勉。

(PS:既然是社會之旅,除了技術(shù)的敲門磚,當(dāng)然還有就是做人了!我只能說我被HR給刷過)

漫漫談(Process and Thread)

作為資深的菜鳥級應(yīng)屆畢業(yè)生,我向大家承若本文包括以后的所有文章都將是“原創(chuàng)”------那是不可能的,是原創(chuàng)加借鑒啦~~(其實就是“抄襲了”,我相信寫過畢業(yè)論文的童鞋們都身+“深”有體會!)

首先來談?wù)?process(傳說中的進(jìn)程) and thread(傳說中的線程),不知道大家有沒有發(fā)現(xiàn)中文的進(jìn)程與線程是很有迷惑性(TMD就一字之差),但是當(dāng)你洋氣的用 process and thread to read them 你就會問“他們”之間有半毛錢關(guān)系嗎,確實有點關(guān)系的!只能說大english確實很有意思的,英語不行的”鳥“兒們該向我們大english妥協(xié)了,因為所有新的技術(shù)一開始都是english版的,不要否認(rèn)!swift剛出就只有就是英文版的。雖然我也是”四級“飄過的渣渣!

Process VS Thread 

借鑒地址:http://www.programmerinterview.com/index.php/operating-systems/thread-vs-process/

process (進(jìn)程):A process is an executing  instance of an application. 

                          進(jìn)程是APP運行(執(zhí)行)的實例

Thread (線程):A thread is a path of execution within a process.

                         線程是進(jìn)程中的一條運行(執(zhí)行)路徑。

看到這里我就有點像吐槽下教科書神馬的了,天書呀有木有!讀者們,別罵我從洋媚外IOS 多線程漫漫談(Process and Thread)。

一個App啟動或者說運行的時候,就會在Operation System(操作系統(tǒng))中創(chuàng)建一個process,是windows的同學(xué)打開你的 the task manager(任務(wù)管理器)看下你早已運行的QQ是有多少個processes? 有多少Threads? 用mac的同學(xué)打開你們的Activity Monitor,本人用的是mac503 五年前的產(chǎn)品了,附圖如下: IOS 多線程漫漫談(Process and Thread)

大家看我們的大QQ,QQ在Activity Monitor中只是mac運行中 All Processes中的一個process,而QQ中的Threads有9條。這樣就完美的詮釋了process(進(jìn)程)和 thread(線程)的概念。


下面來聊聊,進(jìn)程與線程之間的恩怨(process VS thread),那么他們之間的有什么不同呢?

先上英文版的:(借鑒地址:同上)

1. Threads are easier to create than processes since they 
don't require a separate address space.
						
2. Multithreading requires careful programming since threads 
share data strucures that should only be modified by one thread
at a time.  Unlike threads, processes don't share the same 
address space.
						
3.  Threads are considered lightweight because they use far 
less resources than processes.
						
4.  Processes are independent of each other.  Threads, since they 
share the same address space are interdependent, so caution 
must be taken so that different threads don't step on each other.  
This is really another way of stating #2 above.
						
5.  A process can consist of multiple threads.

1、由于創(chuàng)建process(進(jìn)程)需要分配一個片單獨的地址空間(或者說內(nèi)存空間),而thread是進(jìn)程中執(zhí)行的路徑,線程使用的地址空間(內(nèi)存空間)就是process(進(jìn)程)的空間,不需要額外消耗內(nèi)存創(chuàng)建線程。所以說線程的創(chuàng)建比進(jìn)程容易。

2、原文翻譯:由于線程之間共享同一數(shù)據(jù)結(jié)構(gòu),在同一時間里只能由一個線程對數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改,因此多線程編程需要非常小心,而對于進(jìn)程就不要擔(dān)心了,因為進(jìn)程之間都有各自獨立的地址空間。

見解:由于線程之間是共享同一數(shù)據(jù)結(jié)構(gòu)的,所以一旦線程很多,那么就會出現(xiàn)線程對同一數(shù)據(jù)修改的混亂問題。所以在多線程編程時一定要思路清晰。

3、原文翻譯:線程被認(rèn)為是輕量級的,因為線程所需的資源比進(jìn)程少的多。

見解:在文章的原文有一句這樣子的話,我也挺認(rèn)同的:It’s important to note that a thread can do anything a process can do. 意思是:很有必要指出線程可以做到進(jìn)程可以做的任何東西。我們可以這樣理解,進(jìn)程就是悟空,線程就是就是悟空的分身了。悟空的分身可以干悟空能干的事情,但是分身就是分身實力有限,所以可以被認(rèn)為是輕量級的;而悟空本人就牛逼多了,所以被認(rèn)為是重量級的(heavyweight)。

4、原文翻譯:進(jìn)程之間是相互獨立的,而線程之間由于分享的是同一地址空間所以是線程之間是不獨立的。所以一定要小心線程之間的“互踩”(同時對一個對象進(jìn)行操作)。

5、原文翻譯:一個進(jìn)程可以由多個線程組成。

ps:第一次寫博文,不好之處歡迎吐槽!由于操作系統(tǒng)知識忘的差不多了,改天一定把補上!


分享名稱:IOS多線程漫漫談(ProcessandThread)
文章網(wǎng)址:http://weahome.cn/article/gocccc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部