開發平台(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 溝通的麻煩
請問這樣的思考方向在實際應用上是對的嗎??
自己實作的經驗比較少 , 還請各位幫忙解惑
謝謝