《Java多线程编程核心技术(第2版)》 —1.13 yield()方法

举报
华章计算机 发表于 2020/02/08 15:35:11 2020/02/08
【摘要】 本节书摘来自华章计算机《Java多线程编程核心技术(第2版)》 一书中第1章,第1.13节,作者是高洪岩。

1.13 yield()方法

yield()方法的作用是放弃当前的CPU资源,让其他任务去占用CPU执行时间,放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。在本示例中可以取得运行的时间为结果,以测试yield()方法的使用效果。

创建t17项目,MyThread.java文件代码如下:

package extthread;

 

public class MyThread extends Thread {

 

    @Override

    public void run() {

        long beginTime = System.currentTimeMillis();

        int count = 0;

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

            // Thread.yield();

            count = count + (i + 1);

        }

        long endTime = System.currentTimeMillis();

        System.out.println("用时:" + (endTime - beginTime) + "毫秒!");

    }

 

}

文件Run.java代码如下:

package test;

 

import extthread.MyThread;

 

import extthread.MyThread;

 

public class Run {

    public static void main(String[] args) {

        MyThread thread = new MyThread();

        thread.start();

    }

 

}

程序运行结果如图1-60所示。

将代码:

// Thread.yield();

去掉注释,再次运行,结果如图1-61所示。

image.png

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。