日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试被问进线程的区别

發(fā)布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试被问进线程的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

進(jìn)線程的區(qū)別
線程依賴于進(jìn)程,同一進(jìn)程的多個線程共享這一進(jìn)程的資源。 所以進(jìn)程間的切換會比線程更加的耗時。每一個進(jìn)程的創(chuàng)建會分配獨(dú)立4G的內(nèi)存空間(對于32位機(jī)是4G),類似于一個公司有多個部門,每個部門的創(chuàng)建都會分到一間辦公室(4G內(nèi)存),這個部門無論有多少人(線程)都是使用的這間辦公室的資源,當(dāng)然每個人也有屬于自己的辦公位(棧, cpu寄存器),也有每個人都能使用的共有資源(堆,靜態(tài)存儲區(qū), 文件資源等)。因為進(jìn)程間是一個個獨(dú)立的內(nèi)存空間, 而線程間共享一個進(jìn)程的資源,所以線程的通訊比進(jìn)程簡單得多, 線程間需要通信, 一個全局變量就能搞定,進(jìn)程間想要通訊就比較麻煩(多半后面會問你進(jìn)程間的通訊)。然后是cpu對進(jìn)線程的調(diào)度方面。線程是cpu調(diào)度的最小單位, 這個搜進(jìn)線程區(qū)別都能看到。cpu在時間片輪轉(zhuǎn)后,并不會區(qū)分下一個任務(wù)是一個進(jìn)程還是線程。有一個說法是在極端的條件下: 單核cpu, 只有2個進(jìn)程A,B,且進(jìn)程的優(yōu)先級相同, 都只占用cpu資源(如果涉及申請其他資源的的話進(jìn)程會可能休眠, 見下面進(jìn)程狀態(tài))。如果兩個進(jìn)程的線程數(shù)相同, 他們對cpu的占用率應(yīng)該是1:1, 如果A有15個線程, B只有5個, 那他們的占用率應(yīng)該是3:1。這個說法我自己并沒有去驗證過。
進(jìn)程間的通信方式:
(1)共享內(nèi)存:多個進(jìn)程將同一段物理空間映射到自己的虛擬內(nèi)存。
(2)消息隊列 :通過系統(tǒng)調(diào)用讓內(nèi)核創(chuàng)建一個隊列,每個進(jìn)程都可以通過隊列 I D到這個隊列中獲取消息。
(3)套接字: socket網(wǎng)絡(luò)通信都不只是跨進(jìn)程了,都夸主機(jī)了,不過有一種本地套接字,不會吧數(shù)據(jù)通過網(wǎng)絡(luò)傳輸儲去,而是通過內(nèi)核轉(zhuǎn)發(fā)給本主機(jī)的其他進(jìn)程
(4)管道:不知道具體咋用。 編程也沒咋用過,分為 有名管道和無名管道,程序中多用有名管道,不知道無名管道在 程序中咋使用,倒是Linux命令行中常用。Linux的命令本質(zhì)也是一個個程序。管道破裂好像是有的公司面試常問的東西。
(5)信號: 內(nèi)核模擬中途的一種異步通信機(jī)制。
進(jìn)程的幾種狀態(tài):
(1)TASK_RUNNING(運(yùn)行態(tài)):進(jìn)程是可執(zhí)行的;或者正在執(zhí)行,或者在運(yùn)行隊列中等待執(zhí)行。
(2)TASK_INTERRUPTIBLE(可中斷睡眠態(tài)):進(jìn)程被阻塞,等待某些條件的完成。一旦完成這些條件,內(nèi)核就會將該進(jìn)程的狀態(tài)設(shè)度置為運(yùn)行態(tài)。
(3)TASK_UNINTERRUPTIBLE(不可中斷睡眠態(tài)):進(jìn)程被阻塞,等待某些條件的完成。與可中斷睡眠態(tài)不同的是,該狀態(tài)進(jìn)程不可被信號喚醒。
(4)TASK_ZOMBIE(僵死態(tài)):該進(jìn)程已經(jīng)結(jié)束,但是其父進(jìn)程還沒有將其回收。(網(wǎng)絡(luò)通信中服務(wù)端尤其需要注意僵尸進(jìn)程的回收)
(5)TASK_STOP(終止態(tài)):進(jìn)程停止執(zhí)行。通常進(jìn)程在收到SIGSTOP、SIGTTIN、SIGTTOU等信號的時候會進(jìn)入該狀態(tài)。

總結(jié)

以上是生活随笔為你收集整理的面试被问进线程的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。