[問題] 多核與多行程,多執行緒的問題
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
新手自學
對於比較基礎的東西比較不了解,想請大家幫忙解惑一些問題
第一個問題 :
就是目前我的電腦是 qual core processor
這樣可以把它當作有四個 processor 來看待嗎??
目前看到有關介紹多行程及多執行緒的資料
都會假設有四個 processor
多行程的狀況下 :
從 parent process fork() 4 個 child process
然後每一個 child process 都會對應到一個 processor
多執行緒的狀況下 :
從程式執行之後的 process create 4 個 thread
然後每一個 thread 都會對應到一個 processor
這在實際上 qual core CPU 也可以這樣對應嗎??
就是把每一個 core 當作一個 processor 來看待,這樣正確嗎??
第二個問題 :
關於要用"多行程"還是用"多執行緒"的問題
目前的理解是 :
選擇 多行程 的狀況是 :
如果要做的事情不同 , context 差很多 ,
memory map 裡面的 data 不會共用到的時候,就使用多行程去做
如果偶而需要溝通的時候,再用 IPC 去溝通
選擇 多執行緒 的狀況是 :
如果要做的事情有相關,類似是把同一件事情拆分成好幾個部分
資源需要共享的時候,就用 multi-thread 去做 ,
可以減少 system call 的 overhead
以及省去 IPC 溝通的麻煩
請問這樣的思考方向在實際應用上是對的嗎??
自己實作的經驗比較少 , 還請各位幫忙解惑
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.152.155
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1527037930.A.F3B.html
※ 編輯: shiningboy (42.72.152.155), 05/23/2018 09:19:38
→
05/23 09:19,
7年前
, 1F
05/23 09:19, 1F
→
05/23 09:23,
7年前
, 2F
05/23 09:23, 2F
→
05/23 09:24,
7年前
, 3F
05/23 09:24, 3F
→
05/23 09:24,
7年前
, 4F
05/23 09:24, 4F
→
05/23 15:32,
7年前
, 5F
05/23 15:32, 5F
推
05/23 16:20,
7年前
, 6F
05/23 16:20, 6F
→
05/23 16:22,
7年前
, 7F
05/23 16:22, 7F
→
05/23 16:22,
7年前
, 8F
05/23 16:22, 8F
→
05/23 16:29,
7年前
, 9F
05/23 16:29, 9F
→
05/23 16:29,
7年前
, 10F
05/23 16:29, 10F
→
05/24 02:10,
7年前
, 11F
05/24 02:10, 11F
→
05/24 02:10,
7年前
, 12F
05/24 02:10, 12F
→
05/24 02:10,
7年前
, 13F
05/24 02:10, 13F
→
05/24 02:10,
7年前
, 14F
05/24 02:10, 14F
→
05/24 02:10,
7年前
, 15F
05/24 02:10, 15F
→
05/24 02:10,
7年前
, 16F
05/24 02:10, 16F
→
05/24 02:10,
7年前
, 17F
05/24 02:10, 17F
→
05/24 02:10,
7年前
, 18F
05/24 02:10, 18F
→
05/24 02:10,
7年前
, 19F
05/24 02:10, 19F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章