欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++ concurrency in action 读随记1

程序员文章站 2022-04-14 23:29:59
翻了翻,感觉标准库支持的并发应该是kernel level 的(书里也没有明确写,不过他写了诸如“操作系统来安排”“需要知道硬件支持多少线程”等等话语,所以猜测是kernel的。kernel level就是操作系统知道代码定义了几个线程并且知道硬件支持多少线程,可以的话就会安排上去,不会像user ......

  翻了翻,感觉标准库支持的并发应该是kernel level 的(书里也没有明确写,不过他写了诸如“操作系统来安排”“需要知道硬件支持多少线程”等等话语,所以猜测是kernel的。kernel level就是操作系统知道代码定义了几个线程并且知道硬件支持多少线程,可以的话就会安排上去,不会像user level定义的线程全靠用户自己定义的task switch,操作系统只认为这是一个单线程的进程,只安排给它一个处理单元(应该是一个 processor)。

  另外从作者在书里写的c++是语言里最底层的,不需要一门更底层的语言这话来看。。。也应该支持kernel level的并发。。。。

  这里涉及两个问题,一个是c11标准库支持的并发是user level还是kernel level,以及二者的定义。

  希望我两个问题都没有理解错。

 

 

ps:  这个中英文对照也很有意思,大概是   CPU---*处理器     processor-----处理器      core(processing unit/core)----核心       如果是一个  4  dual-core  processor的处理器,我觉得中文翻译应该是4核8线程的处理器,此核非彼核,有意思。

  在我理解里就是,processor运行一个进程,core处理一个线程(当然科学一点讲,涉及很多知识。。懒得去复习。。)。那有一个问题就是,如果一个单线程的进程被一个双线程(1 dual-core processor)的处理器运行着,那是不是这个处理器的另一个线程就浪费了。。。因为别的进程的线程讲道理不能被安排进来。又或者难道一个core就可以单独运行一个进程????