全国
Java--教育路上

栏目导航

全国站 > Java > 多线程
需求

java线程让步

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

标签:
发布时间:
2024-05-06 20:13
信息来源:
网络推荐
浏览次数:
503
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线程插队
相关推荐
最近更新
学校免费发布信息关闭
如有图片请发邮件到:edu63@foxmail.com,审核后显示

 换一张

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


 换一张

确认提交