进程和线程,并发和并行,同步和异步,高并发和…
2019-08-26 06:26:24来源:博客园 阅读 ()
进程和线程,并发和并行,同步和异步,高并发和多线程,理一理概念
1.1:线程和进程
根本区别:
进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位
开销方面:
每个进程都有自己独立的代码和数据空间,程序之间的切换开销较大。
线程可以看作是轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间开销小。
所处环境:
一个操作系统能同时运行多个进程(程序)。
在一个进程中,可以有多个线程同时执行。
内存分配方面:
系统在运行的时候会为每个进程分配不同的内存空间。
对线程而言,系统不会为线程分配内存(线程使用的资源,来自于其所属进程的资源),线程组之间只能共享资源。
包含关系:
没有线程的进程可以看作是单线程。一个进程可以包含多个线程
线程是进程的一部分,所以线程也称为轻量级进程
1.2:并发和并行
并发:
指应用能交替执行不同的任务,类似于多线程的原理。
并行:
指应用能够同时执行不同的任务
1.3:同步和异步
通常是用来形容一次方法调用。
同步:
必须等方法调用返回以后,才能继续调用
异步:
更像是一个消息的传递,调用者不必等待该方法的调用完成,可以继续执行后面相关的调用。
1.4:什么是高并发编程?
高并发,是指短时间内能同时并行处理很多请求和访问。
比如,12306抢票和淘宝双11活动。
想要系统能够适应高并发状态,则需要全面优化,包括:硬件、网络、系统架构、开发语言选取、数据结构的运用、算法优化、数据库优化。而多线程只是其中解决方法的一种。
多线程在解决高并发问题中起到的作用只是:
使计算机的资源在每一时刻都能达到最大的利用率,不至于浪费计算机资源使其闲置。
1.5:高并发和多线程?
高并发不等于多线程
多线程对应的CPU,高并发对应的是访问请求。
可以单线程处理多有的访问请求,也可以多线程同时处理访问请求。
多线程不一定只有在并发的时候才用到。多线程主要是为了避免一个线程过载影响效率,多线程也可以将单任务截取为多段同时进行,这种情况的多线程并不是为了处理并发。
好比植树节种树,每个人相当于一个线程,很多人相当于多个线程,大家同时种树只是为了提高效率。
原文链接:https://www.cnblogs.com/ncl-960301-success/p/11397912.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:java泛型
- 最详细的java多线程教程来了 2020-06-08
- 系统化学习多线程(一) 2020-06-08
- 多线程:生产者消费者(管程法、信号灯法) 2020-06-01
- 如何合理地估算线程池大小? 2020-05-31
- 那些面试官必问的JAVA多线程和并发面试题及回答 2020-05-28
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