在多线程学习的开始,首先要了解几个重要的概念
一、线程和进程
进程:是操作系统进行资源分配和调度的独立单位
线程:是进程中独立运行的子任务
一个进程可能包含多个线程
二、随机
即使启动线程的代码有先后顺序,实际上线程的启动和调用是随机的,cpu时间片一直在切换
三、线程安全和非线程安全
在多线程下,使用加锁等技术保证共享数据不被脏读、篡改等是线程安全的,反之是非线程安全
四、守护线程和用户线程
线程有两种:守护线程和用户线程
守护线程特征:当最后一个用户线程结束时,守护线程会随着JVM一起结束,GC就是最典型的守护线程
五、原子性
一个操作要么都做,那么都不做(不会存在只做了一半的情况)