开发平台(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 沟通的麻烦
请问这样的思考方向在实际应用上是对的吗??
自己实作的经验比较少 , 还请各位帮忙解惑
谢谢