教育路上

全国站>Java>多线程>java线程让步
学员需求

java线程让步

摘要:java线程让步,线程让步可以通过 yield( )方法来实现,该方法和 sleep()方法有点相似,java 线程 让步。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。

2022-05-19 13:43网络推荐

发布时间:
2022-05-19 13:43
信息来源:
网络推荐
浏览次数:
498
java线程让步

在校园中,我们经常会看到同学互相抢篮球,当某个同学抢到篮球后就可以拍一会,之

后他会把篮球让出来,大家重新开始抢篮球,这个过程就相当于 Java 程序中的线程让步。

线程让步可以通过 yield( )方法来实现,该方法和 sleep()方法有点相似,都可以让当前正在运

行的线程暂停,区别在于 yield( )方法不会阻塞该线程,它只是将线程转换成就绪状态,让系

统的调度器重新调度一次。当某个线程调用 yield()方法之后,只有与当前线程优先级相同或

者更高的线程才能获得执行的机会。接下来通过一个案例来演示一下 yield( )方法的使用,如

例 14-9 所示。

例 14-9 Example09.java

// 定义 YieldThread 类继承 Thread 类

class YieldThread extends Thread {

// 定义一个有参的构造方法

public YieldThread(String name) {

super(name); // 调用父类的构造方法

}

public void run() {

for (int i = 0; i < 5; i++) {

System.out.println(Thread.currentThread().getName() + "---" + i);

if (i == 3) {

System.out.print("线程让步:");

Thread.yield(); // 线程运行到此,作出让步

}

}

}

}

public class Example09 {

public static void main(String[] args) {

// 创建两个线程

Thread t1 = new YieldThread("线程 A");

Thread t2 = new YieldThread("线程 B");

// 开启两个线程

t1.start();

t2.start();

}

}

运行结果如图 14-13 所示:

from shengerguan

例 14-9 中创建了两个线程 t1 和 t2,它们优先级相同。两个线程在循环变量 i=3,

都会调用 Thread 的 yield()方法,使当前线程暂停,这时另一个线程就会获得执行,从运行结

果可以看出当线程 B 输出 3 以后,会做出让步,线程 A 继续执行,同样,线程 A 输出 3 后,

也会做出让步,线程 B 继续执行。

上一篇:
java线程休眠
下一篇:
java线程插队
标签:
网友评论
发布评论

访客的评论 2024/04/20 08:00

文中描述的是准确的吗,如何报名!

相关推荐
我也来发表评价关闭
我对该内容的评价:
0
评价500
验证码: 看不清 换一张
提交 (匿名发布,无须担心别人知道您的身份)
学校免费发布信息关闭
我们审核后会尽快展示,如有图片请发邮件到:edu63@foxmail.com

姓      名:

内      容:

手机号码:

验  证  码:  换一张

确认提交
填写需求信息关闭
我们会根据您的需求匹配并审核留言

姓      名:

意向城市:

留      言:

手机号码:

验  证  码:  换一张

确认提交
完善补充本文信息关闭
非常感谢您帮助完善补充本文信息


 换一张

确认提交