并发编程-概念部分-1
2018-09-01 05:39:28来源:博客园 阅读 ()
什么是进程和什么是线程?
进程:操作系统进行资源分配的最小单位。其中资源包括:CPU、内存空间、磁盘IO等。
同一进程中的多条线程共享该进程中的全部系统资源,而进程与进程之间相互独立。
线程:CPU调度的最小单位,必须依赖进程而存在。
进程和线程的区别:
定义:进程是程序运行的一个实体的运行过程,是系统进行资源分配和调度的独立单位。线程是进程运行和执行的最小调度单位。
活泼性:进程不活泼(只是线程的容器)。线程活泼,随时可以创建和销毁。
系统开销:进程创建、撤销、切换开销大,资源要重新分配和收回。线程相对于进程仅保存少了寄存器内容,开销小,在进程的地址空间执行代码。
拥有资产:进行是资源拥有的基本单位。线程相对于进程来说基本上不拥有资源,但会占用CPU。
调度:进程仅是资源分配的基本单位。线程是独立调度、分派的基本单位。
安全性:进程之间相对比较独立,彼此不会互相影响。线程共享同一个进程下的资源,可以相互通信和影响。
什么是并行运行?
并行运行可分为两种情况:
1、程序同时开启的运行中的线程数<=CPU数量*CPU的核心数量。
2、程序同时开启的运行中的线程数<=CPU数量*CPU的线程数量。
举一个例子:高速公路A是并排8车道。那么最大并行车辆就是8辆。当在A公路同时并排走的车辆小于等于8辆时,车辆就可以并行运行。CPU也是这个原理,一个CPU相当于一个A高速,核心数或线程数就相当于并排可以通行的车道。多个CPU就相当于并排有多条高速公路,而每个高速公路并排有多个车道。
什么是并发运行?
并发运行也可分为两种情况:
1、在单核处理器中同时处理多个任务(这里的同时是指逻辑上的同时)
2、在多核处理器中同时处理多个任务(这里的同时是指物理上的同时)
并发与并行的概念重要的区别就是“一段时间”和“同一时刻”。并发是指在同一段时间内同时做多个事情,比如在1点到两点洗碗,洗衣服等。而并行是指在同一时刻做多个事情。如果我一点左手画圆右手画方。
什么是吞吐量?
吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。
网络吞吐量:
某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽,即没有丢帧的情况下,设备能够接受的最大速率。
吞吐量的大小主要由防火墙内网卡,及程序算法的效率决定。程序算法会是防火墙系统进行大量运算,导致通信量大打折扣。
系统吞吐量:
系统在单位时间内所处理的信息量,以每个时间段所处理的进程数来度量。
影响吞吐量的因素:
1、存储设备的存取速度,即从存储器读出数据或数据写入存储器所需的时间。
2、CPU性能:时钟频率、每天指令所花的时钟周期数(CPI)、指令条数。
3、系统结构,如并行处理结构可增大吞吐量。
高并发编程的意义及好处:
1、充分利用CPU的资源
如同坐地铁,有人只坐地铁,而有人实现坐地铁时候看书,这样相当于同样的时间实现了更多的事。
2、加快响应用户的时间
3、使代码模块化,异步化,简单化
高并发,多线程要注意的问题:
1、线程之间的安全性。
2、线程之间的死循环过程。
3、线程太多了会将服务器资源耗尽形成死机宕机。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 因为命名被diss无数次。简单聊聊编程最头疼的事情之一:命名 2020-06-10
- Java3个编程题整理 2020-06-09
- (易忘篇)java基础编程难点4 2020-06-08
- (易忘篇)java基础编程难点3 2020-06-05
- 国外大佬总结的 10 个 Java 编程技巧! 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash