1. 高并发
在理解并发之前,我们还是先理解进程和线程是指的什么?
-
进程:
进程是表示资源分配的的基本概念。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。
通俗地理解: 一个计算机程序执行一次 就是一个进程,计算机程序的原身其实是可执行的数据,这些数据只有读取到内存中,被操作系统调用才开始生命周期。每个进程拥有独立的内存空间和资源。 -
线程:
线程是程序执行时的最小单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源。 -
进程和线程的区别:
-
进程是资源分配的最小单位,线程是程序执行的最小单位。
-
进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。而线程是共享进程中的数据的,使用相同的地址空间.
-
线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。
-
并发和并行
-
并发:
并发就是在单核处理中同时处理多个任务.(这里的同时指的是逻辑上的同时);并发是任务交替进行的; -
并行:
并行就是在多核处理器中同时处理多个任务.(这里的同时指的就是物理上的同时);并行是任务同时进行的;
2.多线程
如果要想系统能够适应高并发状态,则需要从各个方面进行系统优化,包括,硬件、网络、系统架构、开发语言的选取、数据结构的运用、算法优化、数据库优化……而多线程是其中解决方法之一。
- 多线程:这个程序(一个进程)运行时产生了不止一个线程