进程:
每个程序有一个独立的进程,而进程之间是相互独立存在的。
线程:
进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。
串行:相对于单条线程来执行多个任务,按照一定的顺序去进行,在时间上是不可能发生重叠
并行:在同一时刻发生的,并行在时间上是重叠的。
线程安全(要确保在多条线程访问的时候,我们的程序还能按照我们预期的行为去执行)
1、synchronized(保证我们的线程在多线程环境下,不被多个线程同时执行,确保我们数据的完整性,使用方法一般是加在方法上。于非静态的synchronized方法,锁的是对象本身也就是this)
2、Lock(在需要的时候去手动的获取锁和释放锁,甚至我们还可以中断获取以及超时获取的同步特性)