目录
# 并发与并行
- 并发指的是程序的结构,而后者值得是程序运行时的状态
- 并发是指一个处理器同时处理多个任务;并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
- 并发是让多个任务在逻辑上交织执行的程序设计;并行是在物理上一起执行。
- 并发:时间片内有很多的线程以以及进程在执行,但任何一个时间点只有一个在执行;多个线程竞争一个资源; 并行是时间片与时间点都有多个线程或者进程在执行
- 单个CPU只能做到并发,多核CPU才可以做到并行。
# 线程与进程
进程是操作系统进行资源分配与调度的一个独立单元,是应用程序运行的载体
线程是程序执行流的最小单位,是处理器调度以及分派的基本单位
进程由多个线程组成;线程是一个进程中代码的不同执行路线;进程之间互相独立,同一个进程中的线程之间共享程序的内容以及进程级别的资源。
#线程状态
#JAVA内存
JVM基本结构图:
java内部模型:
#线程安全
线程安全问题 VS 资源共享问题
线程安全产生的根本原因是共享数据存在被并发修改的可能,即一个线程读取时,允许另一个线程修改。
如果有两以上的线程同时访问同一个共享资源,可能造成线程冲突,线程冲突会造成数据丢失、重复等严重问题。