1.并行和并发
并行和并发的区别?
并行(parellel),一个人同一时刻做几件不互相干扰的事
并发(concurrency),同一时刻多个人 做同一件事
轮流做
解决高并发的办法
- 队列(优先队列),缓冲区
- 争抢(锁机制,独占锁),存在永远抢不到的问题
- 预处理,缓存
- 并行(水平扩展)
- 提速(垂直扩展)
- 消息中间件 (rabbitMQ)
2. 线程和进程
进程(process)是计算机的程序关于某数据集合行的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
进程和程序的关系
程序是源代码编译后的文件,而这些文件存放在磁盘上,当程序被操作系统加载到内存中,就是进程,进程中存放指令和数据,它是线程的容器.什么是线程
线程,也被称为轻量级进程(lwp), 是程序执行流的最小单元;
一个标准的线程是由线程ID,当前指令指针(PC),寄存器和堆栈组成.进程和线程的关系
(1) 进程是容器提供资源;
(2) 线程是执行单元,使用进程提供的资源;
(3) 每一个进程都认为自己独占所有的计算机硬件资源;
(4) 进程之间不能随便共享数据;
(5) 同一个进程内的线程可以共享进程的资源,每一个线程拥有自己独立的堆栈.
3. 线程的状态
- 运行态(running)
该时刻,该线程正在占用cpu - 就绪态(ready)
可随时转换为运行态,因为其他线程正在运行而暂停,不占cpu - 阻塞态(blocked)
除非某些外部事件发生 ,否则不运行 - 终止(terminated)
线程完成或退出,取消