1.线程的意义
提高CPU的使用效率,但不会程序的运行效率。
2.创建线程的两种方式
方式一:继承Thread类
方式一:实现Runnable接口。
推荐使用方式二,更符合面向对象的思想。因为把线程的执行逻辑(runnable接口的run方法的逻辑) 和 线程创建启动逻辑(start() 启动线程)分开。
注意: run方法是线程的执行任务,直接调用run方法不会启动线程,而仍是在主线程中。调用start方法才是真正启动新的线程。
3.线程的七大状态
4.多线程的安全问题
多个线程同时运行,操作共享资源(数据)会产生冲突。
5. 解决多线程安全问题
方式一:同步代码块
synchronized(锁对象){
代码块
}
注意:锁对象必须唯一
方式二: 同步方法
public sychronized void method(){
方式内容
}