29.5:Java多线程中线程调度基本原理和实现方式!(课程共7400字,4段代码举例分析)

本文详细介绍了Java多线程中的线程调度,包括抢占式调度、协作式调度、Thread.yield()和sleep()方法的使用。通过代码示例解析了线程调度的工作原理,强调了线程优先级、同步和锁机制的重要性,以及在实际开发中需要注意的细节问题。
摘要由CSDN通过智能技术生成

🌺①抢占式调度 
🌺②协作式调度 
🌺③Thread.yield()方法
🌺④sleep()方法

①抢占式调度

public class PreemptiveThreadDemo extends Thread {
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName() + ": " + i);
        }
    }
    
    public static void main(String[] args) {
        PreemptiveThreadDemo t1 = new PreemptiveThreadDemo();
        PreemptiveThreadDemo t2 = new PreemptiveThreadDemo();
        t1.setPriority(Thread.MAX_PRIORITY);
        t2.setPriority(Thread.MIN_PRIORITY);
        t1.start();
        t2.start();
    }
}

在上述代码中,我们创建了两个线程t1和t2,并分别设置了它们的优先级。然后,我们通过调用start()方法开启它们的执行。由于t1的优先级比t2高,因此t1会优先执行。但是,由于Java中的线程调度是抢占式的,因此在某些情况下,t2也有可能在t1之前执行。

🌺课程概述(课程共7400字,4段代码举例分析)

🌺①抢占式调度

🌺——代码举例拆解分析说明  

🌺②协作式调度

🌺——代码举例拆解分析说明  

🌺③Thread.yield()方法

🌺——代码举例拆解分析说明  

🌺④sleep()方法

🌺——代码举例拆解分析说明  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兔子平安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值