JAVA Thread.yield的用法

package com.puple.atto.datastructure;

public class ThreadTest extends Thread{
    @Override
    public void run()
    {
        long beginTime=System.currentTimeMillis();
        System.out.println("线程开始执行时间:"+beginTime);
        int count=0;
        for (int i=0;i<50000000;i++)
        {
            Thread.yield();    //调用yield()方法,暂时不用
            count=count+(i+1);
        }
        long endTime=System.currentTimeMillis();
        System.out.println("线程结束执行时间:"+endTime);
        System.out.println("本次执行用时:"+(endTime-beginTime)+"毫秒!");
    }

    public static void main(String[] args) {
        ThreadTest thread=new ThreadTest();    //创建MyThread12线程实例
        thread.start();    //启动线程
    }
}

  yield注释与否运行时间相差巨大

原文地址:https://www.cnblogs.com/linwenbin/p/11801618.html

时间: 2024-10-09 02:12:13

JAVA Thread.yield的用法的相关文章

Java Thread join() 的用法

Java Thread中, join() 方法主要是让调用改方法的thread完成run方法里面的东西后, 在执行join()方法后面的代码.示例: Java代码   class ThreadTesterA implements Runnable { private int counter; @Override public void run() { while (counter <= 10) { System.out.print("Counter = " + counter +

Java线程中yield()的用法

Thread.yield()方法的作用:暂停当前正在执行的线程,并执行其他线程.(可能没有效果) yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会.因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行.但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中. 结论:大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果. public class TestYiel

java thread

package com.yuan.test; public class LiftOff implements Runnable {  protected int countDown = 10; // Default  private static int taskCount = 0;  private final int id = taskCount++;  public LiftOff() {}  public LiftOff(int countDown) {  this.countDown 

java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)

 *java多线程--等待唤醒机制:经典的体现"生产者和消费者模型 *对于此模型,应该明确以下几点: *1.生产者仅仅在仓库未满的时候生产,仓库满了则停止生产. *2.消费者仅仅在有产品的时候才能消费,仓空则等待. *3.当消费者发现仓储没有产品可消费的时候,会唤醒等待生产者生产. *4.生产者在生产出可以消费的产品的时候,应该通知等待的消费者去消费. 下面先介绍个简单的生产者消费者例子:本例只适用于两个线程,一个线程生产,一个线程负责消费. 生产一个资源,就得消费一个资源. 代码如下: pub

Java Thread 总结(转)

来自: http://www.cnblogs.com/DreamSea/archive/2012/01/11/JavaThread.html 线程的概述(Introduction) 线程的定义(Defining) 1) 继承java.lang.Thread类 2) 实现java.lang.Runnable接口 线程的启动(Starting) 1)如果线程是继承Thread类 2)如果是实现Runnable接口 线程的状态(State) 新生状态(New) 就绪状态(Runnable) 运行状态(

Java Thread 相关的函数

构造方法摘要 Thread()          分配新的 Thread 对象. Thread(Runnable target)          分配新的 Thread 对象. Thread(Runnable target, String name)          分配新的 Thread 对象. Thread(String name)          分配新的 Thread 对象. Thread(ThreadGroup group, Runnable target)          分

java多线程中join用法

thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B. package com.wzs; /** * Java多线程中join用法 * * @author Administrator * */ public class JoinTest { public static void main(String[] args) { BThread bThread = new B

Java thread(4)

这一块主要是讨论关于进程同步的相关问题,主要是考虑一下的关键字:锁对象.条件对象 -> synchronized wait() notify(). 1.关于锁对象与条件对象: 所对象的定义在java中的java.util.concurrent.locks中Lock接口,具体可以有多种实现.对于lock()方法而言,通常的使用方法如下: 比如自己写的某个类已经实现了Lock接口,并且生成了一个实例myLock.之后用Lock接口的lock()方法来控制临界区的代码: myLock.lock()//

java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍

   线程的概述:         线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间叫做线程栈,是建立线程的时候由系统分配的,主要用来保存线程内部的数据,如线程执行函数中定义的变量.   java中多线程是一种抢占机制而不是分时机制.抢占机制是指CPU资源师被多个线程所共享,多个线程处于可运行状态,但是只允许一个线程在运行,他们通过竞争的方式抢占CPU.可以参考java 进程与线程的区别  线程的状态: 新生状态