【网络编程】进程与线程详解

本文详细介绍了进程与线程的概念、并发与并行的区别,以及多进程、多线程的区别。重点讨论了进程间通信、线程同步与异步、线程同步方法和Windows下线程同步机制,帮助读者深入理解进程线程的运行原理和应用场景。
摘要由CSDN通过智能技术生成

【0】目录

【1】什么是进程?什么是线程?什么是并发?什么是并行?
【2】多进程和多线程的区别?
【3】.进程间通信方式以及优缺点?
【4】.进程、线程的基本状态及状态之间的关系?
【5】.多线程有哪些实现方式?
【6】.什么时候用多线程?什么时候用多进程?
【7】.线程同步和线程异步?
【8】.多线程同步和互斥有几种实现方法,分别适用什么情况?
【9】.条件变量与互斥锁、信号量的区别?
【10】Windows下线程同步方法:临界区,互斥量,信号量,事件

【1】什么是进程?什么是线程?什么是并发?什么是并行?

进程是资源分配的最小单位,有独立的地址空间和系统资源。
线程是cpu调度,程序执行的最小单位,一个线程只属于一个进程,而一个进程可以有多个线程,多个线程共享同一个进程的资源。在多核系统下允许几个线程各自独立的在处理器上运行,操作系统提供线程就是为了方便有效地实现这种并发性。
(多进程:同时运行QQ、微信、浏览器 多线程: 用浏览器同时进行浏览网页、播放视频、下载资源)
并发是把cpu运行时间划分成若干个时间段,每个时间段再分配给各个线程执行,当一个线程在运行时,其他线程处于挂起状态。
并行是同一时刻当一个cpu执行一个线程时,另一个cpu可以执行另一个线程,两个线程互不抢占cpu资源,是真正意义上的不同线程在同一时刻同时执行。
形象地解释:
进程是拥有一系列资源的集合,这些资源包括内存空间、内核对象、资源文件等等。我们将进程理解为一个工厂,工厂本身不能运作,需要有人来操作。那么这些工人就是线程,每一个工人操作自己的一台设备,这个设备就可以看成是线程的栈,他由这个工人自己使用。一个工厂里有多台设备时,如果只有一个人那么他就需要去一个个的去操作工厂里的设备,如果这些设备需要同时运行,那么这样操作效率太低。因此,工厂会多聘用几个工人,他们每个人操作自己的设备,这样效率就会大大提高。工人在操作设备时,可能两个人需要使用同一个工具,这个工具是全局的变量,因此他们可以共同访问,但是一个工人要去使用这个工具时,他会等在那里,等另一个人使用完,然后他就可以接过工具,继续干活了,这就是线程的同步。创建多个工厂就是多进程程序。工人操作的每台设备还是属于该工厂,因此线程是依附于进程的,占用进程的地址空间,线程之间也可以相互访问对方的地址,需要通过传址能实现,但是一般不会出现这样的情况,试想能有多大的机会在一个函数中访问另一个函数的的局部变量。在代码的实现中,我们可以将线程仅仅看成一函数去分析,只

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值