Java多线程(二)

线程创建的两种方式:

1. 继承Thread类


2.实现Runnable接口


两种方式的比较

1. Runnable方式可以避免Thread方式由于Java单继承特性带来的缺陷
2. Runnable的代码可以被多个线程(Thread实例)共享,适合于多个线程处理统一资源的情况

线程的生命周期



就绪:创建线程对象后,调用了线程的start()方法(此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定开始运行)
阻塞:正在执行的线程由于某种原因,暂时让出CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法

Java线程有两类

用户线程:运行在前台,执行具体任务(如程序的主线程、连接网络的子线程)
守护线程:运行在后台,为其他前台线程服务
                    特点:一旦所有用户线程都结束运行,守护线程会随JVM一起结束工作
                   应用:如数据库连接池中的监测线程 JVM虚拟机启动后的监测线程。
                   最常见:垃圾回收线程

设置守护线程

调用Thread类的 setDaemon(true)
注意:setDaemon(true)必须在start()方法之前调用,否则会抛出IllegalThreadStateException一场
            在守护线程中产生的新线程也是守护线程
            不是所有任务都可以分配给守护线程来执行,比如读写操作或计算逻辑
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值