Loading

守护线程和用户线程

date: 2020-08-19 13:48:00
updated: 2020-08-21 17:23:00

守护线程和用户线程

Java分为两种线程:用户线程和守护线程

所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。

当用户进程结束后,程序终止,不管此时是否还有正在运行的守护线程。

将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现。

  • thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。你不能把正在运行的常规线程设置为守护线程。
  • 任何线程都会继承负责创建它的那个线程的daemon状态,∴在主线程main方法中创建的线程都是用户线程,在守护线程内创建的线程都是守护线程
  • 守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断
posted @ 2020-10-22 11:14  猫熊小才天  阅读(74)  评论(0编辑  收藏  举报