进程和线程,并发和并行,同步和异步,高并发和多线程,理一理概念

1.1:线程和进程

根本区别:算法

进程是操做系统资源分配的基本单位,线程是任务调度和执行的基本单位数据库

开销方面:编程

每一个进程都有本身独立的代码和数据空间,程序之间的切换开销较大。网络

线程能够看做是轻量级的进程,同一类线程共享代码和数据空间,每一个线程都有本身独立的运行栈和程序计数器,线程之间开销小。数据结构

所处环境:多线程

一个操做系统能同时运行多个进程(程序)。架构

在一个进程中,能够有多个线程同时执行。并发

内存分配方面:异步

系统在运行的时候会为每一个进程分配不一样的内存空间。高并发

对线程而言,系统不会为线程分配内存(线程使用的资源,来自于其所属进程的资源),线程组之间只能共享资源。

包含关系:

没有线程的进程能够看做是单线程。一个进程能够包含多个线程

线程是进程的一部分,因此线程也称为轻量级进程

 

1.2:并发和并行

并发:

指应用能交替执行不一样的任务,相似于多线程的原理。

并行:

指应用可以同时执行不一样的任务

1.3:同步和异步

一般是用来形容一次方法调用。

同步:

必须等方法调用返回之后,才能继续调用

异步:

更像是一个消息的传递,调用者没必要等待该方法的调用完成,能够继续执行后面相关的调用。

 

1.4:什么是高并发编程?

高并发,是指短期内能同时并行处理不少请求和访问。

好比,12306抢票和淘宝双11活动。

想要系统可以适应高并发状态,则须要全面优化,包括:硬件、网络、系统架构、开发语言选取、数据结构的运用、算法优化、数据库优化。而多线程只是其中解决方法的一种。

多线程在解决高并发问题中起到的做用只是:

使计算机的资源在每一时刻都能达到最大的利用率,不至于浪费计算机资源使其闲置。

1.5:高并发和多线程?

高并发不等于多线程

多线程对应的CPU,高并发对应的是访问请求。

能够单线程处理多有的访问请求,也能够多线程同时处理访问请求。

多线程不必定只有在并发的时候才用到。多线程主要是为了不一个线程过载影响效率,多线程也能够将单任务截取为多段同时进行,这种状况的多线程并非为了处理并发。

比如植树节种树,每一个人至关于一个线程,不少人至关于多个线程,你们同时种树只是为了提升效率。

相关文章
相关标签/搜索