fork 进程 pthread_create线程

Introduction
Details

 

一个进程就相当于一个主线程。

 

fork一个进程与create一个线程的区别:

fork进程:子进程复制父进程的进程环境。父进程结束不会影响子进程的运行。进程切换复制进程环境。

create线程:子线程共享父线程的线程环境。线程(一个主线程下的多个线程)切换不复制环境,所以线程运行快,省去了复制环境的时间。主线程运行结束,子线程的运行就无意义了。

 

子线程返回主线程的方法:

1.主线程等待子线程运行结束

2.用信号,比如说用主线程有一个全局变量 p=1,子线程有一 while(p) 一直在无限运行,这是主线程 p = 0,while(p) 子线程退出。

一个进程 create了几个线程,进程fork(),这是fork出的子进程不能复制父线程的线程,也就是说,fork出来的子进程只复制父现成的执行环境。

 

线程是一个执行体。

进程是运行环境+执行体。

ulimit -a 显示进程环境的属性

core file size (blocks, -c) unlimited

data seg size (kbytes, -d) unlimited

file size (blocks, -f) unlimited

max locked memory (kbytes, -l) 4

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 7168

virtual memory (kbytes, -v) unlimited

 

为什么创建的线程数是有限的?

因为主线程的线程环境是有限的,默认10M,每产生一个子线程,从栈区分配内存 200K的大小给子线程,所以线程的大小是可以改变的,当然 从栈区分配的内存是可以改小的。

 

修改环境PATH:在/home/hailong/.bash_profile

PATH的作用,比如说在任何目录下都可以使用vi,ls等命令,是因为已经把vi.ls的程序完整路径记录在PATH里,系统会自动在PATH里查找需要运行的程序后执行。 可以把经常用到程序路径添加到PATH里,就可以在任何路径下 输入程序名,程序就能运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值