码迷,mamicode.com
首页 > 编程语言 > 详细

Linux 多进程多线程相关概念

时间:2017-08-19 00:43:50      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:多线程   共享   过程   管理   处理   free   src   返回   应用   

进程:可执行程序是存储在磁盘设备上的由代码和数据按某种格式组织的静态实体,而进程是可被调度的代码的动态运行。在Linux系统中,每个进程都有各自的生命周期。在一个进程的生命周期中,都有各自的运行环境以及所需的资源,这些信息都记录在各自的进程控制块中,以便系统对这些进程进行有效的管理,进程控制块的结构如下图所示:

技术分享

每个进程都有各自独立的虚拟地址空间,空间的大小与所基于的硬件体系结构有关。虚拟空间中各区代表的意义,代码段存储指令序列和只读数据,多个进程实例可共享代码段。数据段用来存放全局变量和静态变量。堆区域用于程序的动态内存管理,new或者malloc申请的内存就位于堆中。栈用来存放进程运行过程中的局部变量,函数返回地址,参数和进程上下文环境。

线程:引入进程是为了解决程序并发执行的问题,而引入线程是为了减少程序并发所带来的时间和空间的开销,线程是比进程更小的单位,一个进程至少有一个线程,线程是操作系统进行调度的基本单位,线程基本上不占用系统资源,线程与其他同属一个进程的线程共享该进程所占有的资源。

应用编程接口(相关头文件和参数类型可通过man命令查看)

进程环境  

getuid   获得当前进程实际用户ID

geteuid   获得当前进程有效用户ID

getgid        获得当前进程实际用户组ID 

getegid      获得当前进程有效用户组ID

getpid  获得当前进程ID

getppid   获得父进程ID

getpgrp     获得进程组ID

setpgid      设置进程组

getsid   获得进程会话ID

setsid        设置进程会话ID

进程地址空间

malloc   申请内存

free       释放内存

brk    设置堆区域大小

进程的创建与终止

fork  创建子进程

exit        终止进程

atexit     注册终止处理程序

加载可执行二进制映像

exec

进程的同步控制

wait    暂停执行直到一个子进程结束

waitpid   等待指定子进程结束

线程

1. pthread_equal     //判断线程是否相同
2. pthread_self        //返回调用线程的ID
3. pthread_create      //创建线程
4. pthread_exit      //退出线程
5. pthread_join      //启动线程
6. pthread_cancel    //取消线程
7. pthread_cleanup_push 
8. pthread_cleanup_pop 
9. pthread_detach 
10. pthread_mutex_init 
11. pthread_mutex_destroy

总结:这一部分,间短介绍了linux下多进程和多线程的相关概念,并介绍了编程时使用的一些api,多进程编程和多线程编程的实例放在下一部分介绍。

Linux 多进程多线程相关概念

标签:多线程   共享   过程   管理   处理   free   src   返回   应用   

原文地址:http://www.cnblogs.com/CodingUniversal/p/7392587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!