linux中主进程与主线程的关系

问题描述

linux中主进程与主线程的关系

一直很困惑,linux环境下,程序启动时,会有主线程吗?如果有,这个主线程是在什么时候生成的,主进程又是什么时候生成的呢?
谢谢各位大大赐教!

解决方案

主线程和主进程是相对而言的,主函数里面fork了子进程那么主函数就是主进程。类似的,pthread_create了子线程,主函数就是主线程。

解决方案二:

进程启动的时候会有一个主线程,来执行Init初始化,调用_main() 函数等,这个线程就是主线程。
这个主进程概念是类似当它启动了子进程以后,那么父进程就是主进程

解决方案三:

我记得Linux实际上没有线程这个概念,每一个thread实际上就是一个进程。

解决方案四:

实际上所谓线程大体有两种实现方式:
1)kernel根本不知道thread的存在,thread之存在于进程中,可以看作一个process的cpu和stack的快照,thread之间的切换只需要在进程内在用户太完成。
2)kernel知道thread的存在,一个thread也是一个process。但是一组process共享进程空间,比如内存空间。这种实现下thread之间的切换需要又kernel完成。
linux事使用第二种实现方式实现的thread。也就是说,linux里面没有狭义中的thread概念。都是process,但是可以一组process共享资源。有一个leader,
这一组process的id号就是这个leader的id。

时间: 2024-08-21 04:25:28

linux中主进程与主线程的关系的相关文章

QT中的多线程-与主线程通信

今天回想研究生期间做的项目,用到了Qt的多线程通信,当时一点都不懂,就这照猫画虎地写,如今因为上次面试中问到了,觉得得好好准备下: Qt 程序开始执行时,唯一的一个线程 -- 主线程 (main thread)也开始执行.主线程是唯一的,因为只有它才能创建 QApplication 或者是 QCoreApplication 对象,只有它才能通过应用程序对象调用 exec( ) 函数,只有它才能在 exec( ) 执行完毕后等待并处理事件. 主线程可以通过创建 QThread 子类对象开启一个新的

安卓,子线程获取网络图片,发消息给主线程,主线程用图片填充listview,出错

问题描述 安卓,子线程获取网络图片,发消息给主线程,主线程用图片填充listview,出错 先上logcat: 我的xml布局就是一个按钮,和一个listview,listview里就一个imageview,按下按钮开始从网络获取图片,然后发消息到主线程,然后listview就填充数据.xml代码就不贴了. 以下是mainactivity public class MainActivity extends AppCompatActivity implements View.OnClickList

Linux中用于进程显示的top命令使用实例集锦

  Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运行很多命令.我们也会探索这些命令.(注:不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助.) 1. Top 命令输出: 首先,让我们了解一下输出.top命令会显示系统的很多信息.我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出: (默认显

Linux中查看进程及杀死进程命令

Linux中想杀死fcitx进程,然后再重启它. root@www.linuxidc.com:/home/zhangbin# ps -e | grep 'fcitx'  3405 ?        00:00:00 fcitx <defunct>  3415 ?        00:00:02 fcitx   不显示标题 root@www.linuxidc.com:/home/zhangbin# ps -h Warning: bad ps syntax, perhaps a bogus '-'

Linux中查看进程占用内存的情况【转】

转自:http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/ Linux中查看某个进程占用内存的情况,执行如下命令即可,将其中的[pid]替换成相应进程的PID号: cat /proc/[pid]/status 说明 /proc/[pid]/status中所保存的信息除了内存信息,还包括进程IDs.信号等信息,此处暂时只介绍内存相关的信息. 字段 说明 VmPeak 进程所使用的虚拟内存的峰值 VmSize 进程当前使

Linux中用于进程控制的exec函数族

1.简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg, ..., cha

Linux中Kill进程的N种方法

常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal smx       1823  1822  0 11:38 ?        00:00:00 gnome-pty-helper smx       1824  1822  0 11:38 pts/0    00:00:02 bash smx       1827     1  4 11:38 ?    

linux中在进程尚未停止前恢复被误删的文件

背景介绍: 今天,在运维群里面跟一些群友聊天,我主要吐槽了关于EXT4文件系统难以做数据恢复的问题,因为过去自己有尝试过EXT3和EXT4上的数据恢复,主要用的是ext3grep和ext4undelete,EXT3基本上每次都能恢复成功,但EXT4却没有成功过一次,每次恢复出来的文件都是破损的,或残缺不全的. 期间,一些比较资深的牛人说EXT4他们成功的恢复过,并且说抱怨Linux文件系统数据不好恢复的人都是对Linux文件系统的基础知识不熟悉,多去看看Linux文件系统关于block, ino

C语言的fork函数在Linux中的进程操作及相关面试题讲解_C 语言

fork的意义 下图为,C 程序的存储空间布局(典型) 1.一个现有进程可以调用 fork 函数创建一个新进程. 2.fork 函数被调用一次,但返回两次, 两次返回的唯一区别是子进程的返回值是 0, 而父进程的返回值是新子进程的 PID. 3.子进程和父进程继续执行 fork 调用之后的指令. 在上图的存储空间布局中,父子进程只共享正文段,其余的都各自有独立的副本 (通常使用 copy-on-write 的策略,速度比较快). fork 的两种用法 1.父子进程同时执行不同的代码段典型应用:W