版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Fei20140908/article/details/78948456
Java Thread 多线程 总结概括
1、实现线程的两种方式
1.1 继承Thread 类,并实现run()
方法,然后创建一个对象并调用其start()
方法
1.2 创建一个类实现Runnable接口
,并用该类去创建一个Thread对象,然后调用 start
方法
2、线程的生命周期
- 出生状态 刚创建时的状态
- 就绪状态 可执行状态
- 运行状态
- 等待状态 调用
wait
方法进入的状态,必须调用notify
或者notifyall
方法来唤醒 - 休眠状态 一般是调用
sleep
方法进入 - 阻塞状态 运行状态下发出输入输出或者执行到同步代码块
- 死亡状态
run
方法里面的东西运行完了
3、线程操作的方法
3.1 线程的休眠
sleep
方法
3.2 线程的加入
线程的加入就是指A加入到B线程中,那么B线程得在A线程执行完才能接着执行。
在A线程的 run
方法中调用 ThreadB.join()
3.3 线程的中断
调用线程的 interrupt()
方法,将会退出 run
方法,并且抛出 InterruptedException
异常,通过捕捉这个异常并设置异常处理函数可完成线程中断业务的处理
4、线程的优先级
- 线程的优先级有10级,最低1级
Thread.MIN_PRIORITY
,最高10级Thread.MAX_PRIORITY
,普通(默认)5级Thread.NORM_PRIORITY
- 通过
setPriority()
来设置任务的优先级 - 系统会首先给优先级高的分配时间片
5、线程同步
两种同步机制
1. 同步块
synchronized(""){
...
}
同时只能有一个线程能运行代码块中的内容.
2. 同步方法
synchronized void f(){
...
}
当某个对象用了同步方法是,该对象 上的其它同步方法必须等待该同步方法执行完毕后才能执行.
参考文献 《Java从入门到精通》