第一次作业 线程和进程

1.线程和进程的定义
a 进程:是程序的一次动态执行过程,它对应从程序代码的加载、执行到执行结束的一个完整的过程,也就是进程产生、发展至消亡的过程。
线程:是比进程更小的执行单位,是一段完成某个特定功能的代码,是进程中的一个单个控制流,一个进程在其执行过程中可以包括多个线程。
2.线程和进程的区别
区别:1.进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
2.实体间(进程间,线程间,进线程间)通信方式的不同

进程间的通信方式有这样几种:

A.共享内存 B.消息队列 C.信号量 D.有名管道 E.无名管道 F.信号

G.文件 H.socket

线程间的通信方式上述进程间的方式都可沿用,且还有自己独特的几种:

A.互斥量 B.自旋锁 C.条件变量 D.读写锁 E.线程信号

G.全局变量

值得注意的是,线程间通信用的信号不能采用进程间的信号,因为信号是基于进程为单位的,而线程是共属于同一进程空间的。故而要采用线程信号。

综上,进程间通信手段有8种。线程间通信手段有13种。
3..控制方式的异同 :进程与线程的身份标示ID管理方式不一样,进程的ID为pid_t类型,实际为一个int型的变量(也就是说是有限的):在全系统中,进程ID是唯一标识,对于进程的管理都是通过PID来实现的。每创建一个进程,内核去中就会创建一个结构体来存储该进程的全部信
4..个体间辈分关系的迥异:进程的备份关系森严,在父进程没有结束前,所有的子进程都尊从父子关系,也就是说A创建了B,则A与B是父子关系,B又创建了C,则B与C也是父子关系,A与C构成爷孙关系,也就是说C是A的孙子进程。在系统上使用pstree命令打印进程树,可以清晰看到备份关系。

多线程间的关系没有那么严格,不管是父线程还是子线程创建了新的线程,都是共享父线程的资源,所以,都可以说是父线程的子线程,也就是只存在一个父线程,其余线程都是父线程的子线程。

3 linux下线程和进程的区别
我在网上查到的资料显示:
Linux 2.2内核
    •不存在真正意义上的线程
Linux 2 .4内核
    •消除线程个数的限制,允许动态地调整进程数上限
在Linux 内核2.6之前,进程是最主要的处理调度单元,并没支持内核线程机制
Linux 2.6内核
    •实现共享地址空间的进程机制, 在1996年第一次获得线程的支
加上自己在多次其查找资料感觉linux上的线程和进程的概念好像很模糊自己不太能找出其中的差别。

4.并发问题
并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值