一、基础
1. 线程的 start() 和 run() 方法
① start() :启动的顺序,不代表执行的顺序,,多次调用,会报无效的线程状态异常(IllegalThreadStateException)
② run() :等run()方法中的代码执行完才执行后面的代码
2. Runable(接口),public class Thread implements Runnable(类)
① 因为Java不支持多继承,所以大多使用实现Runable接口的方式创建线程
3. 临界区,互斥区 :synchronized 可以在任意的对象及方法上加锁,而加锁的这段代码称为互斥区或临界区
4. 非线程安全:指多个线程对同一个对象中的实例变量进行修改,会出现值被更改、值不同步的情况,进而影响程序的执行流程
5. println():是线程安全的