JAVA-多线程
多线程
1、基本概念
1.进程:独立运行的程序
进程至少包含一个主线程
进程中可以包含多个线程
2.线程:进程中进行的流程
多个并发的线程就是多线程
2、实现方法
1.继承Thread类
1 重写run()里调用需要分线程执行的代码
2 调用start() start表示用新线程启动run()
2.实现Runnable接口 目的:解决java单继承的问题
1 实现run()
2 通过Thread的构造方法,把Runnable实例化
3 调用start()启动
3、线程的生命周期
1.新建状态 构建了一个实例,但没开始执行
2.可执行状态 调用了start方法,等待开始运行
3.运行状态 cpu执行run()中的代码
4.阻塞状态
调用sleep() 休眠时间,单位是毫秒
调用join() 处于运行状态的a线程如果调用了其他线程的join() 那么a线程处于阻塞状态
当目标线程执行完毕才结束阻塞,再继续运行
执行I/O操作
5.死亡状态 线程执行完毕
4、线程同步
1. synchronized 关键字
2.作用 防止共享对象在并发访问时出现错误
确保共享对象在同一时刻只被一个线程访问
3.方法 同步方法 ( 修饰符 synchronized 返回类型 方法名(参数列表){} )
同步代码块 synchronized(对象或this){同步运行的代码}
Object起到共享锁标志作用