问题的提出:

Linux,一个进程有n个线程,每个线程又使用fork()创建了一个进程?

请问:总共有多少线程和进程?

问题的解答:

Alexander Amelkin • According to POSIX, after a fork() only the calling thread is to be cloned and all thread-related entities are not guaranteed to work (and in fact will NOT work). POSIX has a list of functions that are safe to use after fork() and most of the thread-related functions aren't on that list. Actually, there is a good explanation given in the Rationale section of the fork() description in POSIX1. In a few words, it says that fork() in a threaded application is only truly safe to use when it is almost immediately followed by exec().

Now, to answer your question. There will be your process with n threads plus n processes with 1 thread each. That totals n+1 processes and 2*n threads.

Yuri Perepechkin •http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html

fork - create a new process

A process shall be created with a single thread.

the new process shall contain a replica of the calling thread

Process/Threads:

* --fork-> 1/1

...

* --fork-> n-1/1

* --fork-> n/1

Total

processes: 1+n

threads: n+(n*1)=2n

Assumed each process must have one thread at least (main thread)

Start thread and process numeration from 1.

Daya Shanker Prasad •Thank you all, for your answer. For a long time I used to think about it but couldn't pay time on this. Finally I experimented this and got:

Thread: 2n + 1

Process: n + 1

main() was running as separate thread which was forking n threads.

linux线程计算,有关Linux进程与线程数目计算的问题相关推荐

  1. 【Linux系统编程】守护进程、线程

    ------------->[Linux系统编程/网络编程](学习目录汇总) <-------------- 目录 1.守护进程 1.1 进程组 1.2 会话 1.3 setsid()函数 ...

  2. [转]关于Linux下时间片分配给进程还是线程的问题

    原文地址:https://www.zhihu.com/question/64723752/answer/223613245 在Linux系统中,对于用户创建的进程(线程)来说,CPU分配时间片的单位是 ...

  3. Linux服务器查看带宽,进程和线程

    Linux服务器上监控网络带宽的常用命令 监控总体带宽使用 ――nload.bmon.slurm.bwm-ng.cbm.speedometer和netload 监控总体带宽使用(批量式输出)――vns ...

  4. Linux系统编程08---守护进程与线程

    目录 作者介绍 学习目标 1 守护进程(也称Daemon 精灵进程-->是后台服务进程) 1.1 守护进程的特点 1.2 进程组和会话 1.3 创建守护进程的模型 1.4 实例:创建守护进程模型 ...

  5. linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?

    进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...

  6. Linux文件系统、虚拟内存、进程与线程、锁

    文章目录 文件系统 su Linux 中默认没有 super 命令 /proc /etc /var /root /home /bin /dev /lib /sbin tmp 句柄 maxfd PWD ...

  7. linux 驱动线程与进程,Linux内核学习之二-进程与线程

    一.操作系统的功能 根据维基百科的解释,一个操作系统大概包括以下几个功能: 进程管理(Processing management) 安全机制(Security) 内存管理(Memory managem ...

  8. android 获取linux线程状态,Android 的进程与线程总结

    本文翻译自Android官方文档 当一个Android应用程序组件启动时候,如果此时这个程序的其他组件没有正在运行,那么系统会为这个程序以单一线程的形式启动一个新的Linux 进程. 默认情况下,同一 ...

  9. task.run 强制结束线程_图文介绍进程和线程的区别

    点击蓝色"最码农"关注我哟 加个"星标",每天下午18:03,一起学技术 进程和线程的概念 先了解一下操作系统的一些相关概念,大部分操作系统(如Windows. ...

  10. 进程和线程(4)-进程 vs. 线程

    进程 vs. 线程 我们介绍了多进程和多线程,这是实现多任务最常用的两种方式.现在,我们来讨论一下这两种方式的优缺点. 首先,要实现多任务,通常我们会设计Master-Worker模式,Master负 ...

最新文章

  1. FIN_WAIT_2
  2. 采用JNI方法利用opengl es 1.x在android上绘图
  3. Java7 HashMap详解
  4. 【渝粤教育】广东开放大学 文化产业项目案例分析 形成性考核 (51)
  5. JavaSE基础笔记十二
  6. 怎么将ip地址改成域名访问_什么是域名解析?怎么把域名解析成IP地址?
  7. java开发http协议接口_java开发接口利用http协议传输数据
  8. python用户登陆,Python入门基础--用户登陆
  9. 编辑php程序推荐的软件,手机上如何才能编辑程序代码?(软件推荐)
  10. Proteus8.6SP2仿真使用汇总
  11. 四叶草启动引导配置工具 !Clover Configurator中文版下载!
  12. 基于韦尔奇·鲍威尔法对图着色 含c++代码
  13. Safari 浏览器扩展安装后未显示
  14. 阿里云 EMAS Serverless 重磅发布
  15. 08-20210305在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)
  16. 知晓云 php,2020 知晓云小程序年度评选获奖名单发布
  17. 微软的苹果香味——专访微软MacBU组成员
  18. Java 模板引擎主流,freemaker ,thymeleaf (技术的介绍,重要是理解)(学成在线day04)
  19. 金蝶显示云服务器已离线,金蝶云服务器已离线是什么情况
  20. 血栓清道夫机器人_血栓的头号“清道夫”,每天吃一点,血脂血栓全溶光,血管永不堵...

热门文章

  1. 小米大杀器稳了?队友泄露小米MIX4 5G预售页面...
  2. 罗永浩确认12月初开发布会 不是手机也不是电子烟
  3. 突发!百度AI开发者大会李彦宏遭泼水 百度官方回应...
  4. Galaxy Fold可折叠屏手机何时能发售?三星自己也不知道
  5. 潘石屹回应丁磊“5G言论”:生活在4G的人理解不了5G
  6. 苹果将推出新款iPhone 7/8?为应对德国禁售令!
  7. 虚拟资源拳王公社:小白从0到1搭建个人私域流量池的实操方法,6招玩转流量裂变法
  8. 解决部分控件,自动获取焦点的情况
  9. java跨系统和跨域_java web服务解决跨域问题
  10. wordpress支持MySQL5.5_CentOS 5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装Wordpress...