多线程:
概念:
进程:可以理解为程序
线程:程序的执行路径、执行绪,即一个进程有一个或多个线程执行。CPU执行以线程为单位。
线程调度方式:Java使用抢占式线程调度方式
多线程没有提高运算速度,提高了CPU执行效率,所以当完成复杂代码时,看上去确实快了!实际上是CPU在多个线程间高速切换。
两种格式:
继承线程类:
定义类继承Thread
重写run方法
创建自定义的线程对象
开启线程
实现Runnable接口:
定义类实现Runnable(线程执行目标)接口
重写run方法
创建线程执行目标类对象
通过线程执行目标类对象创建线程
开启线程
两种方式第二种更好:
将线程执行目标与线程本身分离
方便了数据共享
突破了单继承的局限性
线程安全处理机制:
出现前提:
多个线程
抢占式调度方式
多个线程具有共享数据
多各线程操作共享数据
处理办法:
同步代码块:多个线程需要使用同一把锁的代码块同步
synchronized(任意类型的锁对象) {
被同步的代码
}
同步方法:在方法上加入synchronized 默认锁为this,如果是静态方法,默认锁为 该类类名.class |
|