`

关于java的yield的疑惑

阅读更多
搜java yield的时候,在网上搜索到这个文章:http://developer.51cto.com/art/201003/189465.htm.自己在本机上运行了下发现结果和作者说的不一样.在我的机器上yield的使用没有任何效果,用不用都是一样的.

class TestThreadMethod extends Thread{
    public static int shareVar = 0;
    public TestThreadMethod(String name){
        super(name);
    }
    public void run(){
        for(int i=0; i<4; i++){
            System.out.print(Thread.currentThread().getName());
            System.out.println(" : " + i);
Thread.yield();
/* (2) */
//            try{
//                Thread.sleep(3000);
//            }
//            catch(InterruptedException e){
//                System.out.println("Interrupted");
//            }

        }}
}
public class TestThread{
    public static void main(String[] args){
        TestThreadMethod t1 = new TestThreadMethod("t1");
        TestThreadMethod t2 = new TestThreadMethod("t2");
        t1.setPriority(Thread.MAX_PRIORITY);
        t2.setPriority(Thread.MIN_PRIORITY);
        t1.start();
        t2.start();
    }
} 


我的运行结果:
t2t1 : 0
 : 0
t2t1 : 1
 : 1
t2t1 : 2
 : 2
t2 : 3
t1 : 3


网上文章写的运行结果
t1 : 0  
t1 : 1  
t1 : 2  
t1 : 3  
t2 : 0  
t2 : 1  
t2 : 2  
t2 : 3 


这到底是什么情况呢.java的yield到底是什么作用?
0
1
分享到:
评论

相关推荐

    java 线程让步(Yield)

    Java线程让步(Yield)是Java多线程编程中的一个重要概念,它涉及到线程调度和并发控制。在多线程环境下,线程让步意味着一个正在运行的线程主动放弃当前的时间片,以便其他就绪状态的线程有机会执行。这与线程的...

    Java yield运算符.txt

    Java yield运算符

    Java yield()线程让步实现过程解析

    Java yield() 线程让步实现过程解析 Java 中的 yield() 方法是一个静态方法,它的主要作用是让当前线程由“运行状态”进入到“就绪状态”,从而让其他具有相同优先级的等待线程获取执行权。下面将详细介绍 yield() ...

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    以上就是对Java线程中wait、await、sleep、yield、join用法的总结。这些方法在实际开发中,对于控制多线程运行的时序和协调非常关键。理解这些方法的正确使用方式是掌握Java并发编程的基础。同时,使用时需特别注意...

    Java线程让步yield用法实例分析

    Java线程让步yield用法实例分析 Java线程让步yield用法是一种线程调度机制,允许当前线程让步给其他线程,以实现线程之间的协作和同步。yield()方法是一个和sleep()方法有点类似的方法,它是Thread类提供的一个静态...

    Java线程中yield与join方法的区别Java开发J

    在Java多线程编程中,理解并正确使用`yield`和`join`方法是至关重要的。这两个方法都属于线程控制策略的一部分,但它们的作用和使用场景有所不同。 首先,我们来详细探讨`Thread.yield()`方法。这个方法的目的是让...

    java多线程机制 -- 源码详解

    Java 多线程机制是Java语言的一大特性,它允许程序同时执行多个任务,模拟现实生活中的并发行为。在Java中,创建线程有两种主要方式:继承Thread类和实现Runnable接口。 在例子1中,我们看到一个简单的多线程示例。...

    yield表达式.pdf

    Python中的yield表达式是一个极为重要的概念,它是生成器(generator)的核心组成部分。生成器在处理大量数据时显得尤为有用,因为它可以逐个产生数据项而不是一次性加载所有数据到内存中。这不仅可以节省内存,还能...

    Pb中Yield()函数的使用[文].pdf

    Pb 中 Yield() 函数的使用 Yield() 函数是 PowerBuilder 中一个非常有用的函数,它可以将控制权转移给其他图形对象,包括非 PowerBuilder 对象。该函数检测消息队列,如果有消息,就把消息取出。该函数返回布尔型值...

    java中yieldsleep以及wait的区别.pdf

    Java中的多线程编程涉及到许多关键概念,包括`yield()`, `sleep()`, 和 `wait()`,这些都是控制线程执行的重要方法。理解它们的区别对于编写高效并发程序至关重要。 首先,`yield()`方法的作用是让当前正在执行的...

    使用C# yield关键字来提高性能和可读性

    使用C# yield关键字来提高性能和可读性 C# 中的 yield 关键字可以提高代码的性能和可读性。yield 关键字可以让开发者使用惰性枚举(Lazy Enumeration),从而减少不必要的内存分配和数据处理。下面我们将详细介绍 ...

    T03-Sleep-Yield-Join.java

    T03_Sleep_Yield_Join.java

    【IT十八掌徐培成】Java基础第08天-01.多线程-yield.zip

    今天我们将深入探讨由IT十八掌徐培成讲解的Java基础课程中的第八天主题——多线程,特别是关于`yield()`方法的知识点。 首先,我们要明白什么是线程。线程是程序执行的最小单位,每个线程都代表程序的一个独立控制...

    yield总结与实例

    二、yield是一个语法糖,为方便开发者提供的一种方便方法 三、yield返回类型为IEnumerator、IEnumerable、IEnumerator、IEnumerable 四、如果返回类型为IEnumerator编译时会实现一个实现了IEnumerator接口的类 五、...

    多线程sleep,yield,wait区别

    `sleep`, `yield`, 和 `wait` 是 Java 中用于线程管理的三个重要方法,它们各自有着不同的功能和用途。理解它们的区别有助于编写出更加高效和可控的多线程程序。 1. **sleep() 方法** - `Thread.sleep(millisecond...

    Java线程中yield与join方法的区别

    之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。  Java线程调度...

    java基本教程之线程让步 java多线程教程

    Java线程让步是多线程编程中一个重要的概念,主要体现在`Thread`类的`yield()`方法上。本文将详细讲解`yield()`方法的作用、示例以及与`wait()`方法的比较。 1. `yield()`介绍 `yield()`方法是Java中用于线程让步的...

    Python库 | ffmpeg_progress_yield-0.1.2-py2.py3-none-any.whl

    Python库`ffmpeg_progress_yield`是用于处理多媒体文件的工具,特别是在视频和音频处理方面。它是一个基于Python的接口,能够与FFmpeg命令行工具进行交互,从而为用户提供更方便、更高级别的API来操作多媒体数据。`...

    java JDK 1.8-8u202/ 16.0.1

    Java JDK是Java开发工具包(Java Development Kit)的缩写,是Java编程语言和平台的基础。JDK包含Java编译器、Java运行环境、Java工具(如Javadoc和JAR)、Java类库以及一些必要的API,是开发和运行Java应用程序不可...

    java 16.0.1 windows.zip

    开发者可以使用`yield`关键字返回值,并在多行模式下使用`-&gt;`操作符。 2. **记录类(Records)**:Java 16正式引入了记录类,它是一种特殊的类,用于封装不可变的数据集。记录类自动提供了构造函数、equals()、...

Global site tag (gtag.js) - Google Analytics