Java Thread 多线程 总结概括

版权声明:本文为博主原创文章,未经博主允许不得转载。 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、线程的优先级

  1. 线程的优先级有10级,最低1级 Thread.MIN_PRIORITY,最高10级Thread.MAX_PRIORITY,普通(默认)5级 Thread.NORM_PRIORITY
  2. 通过 setPriority()来设置任务的优先级
  3. 系统会首先给优先级高的分配时间片

5、线程同步

两种同步机制

1. 同步块

synchronized""){
  ...
}

同时只能有一个线程能运行代码块中的内容.

2. 同步方法

synchronized void f(){
  ...
}

当某个对象用了同步方法是,该对象 上的其它同步方法必须等待该同步方法执行完毕后才能执行.

参考文献 《Java从入门到精通》

猜你喜欢

转载自blog.csdn.net/Fei20140908/article/details/78948456