package com.thread;
/**
 * <yiedl:把cpu让给其他线程>
 * <功能详细描述>
 *
 * @author  95Yang
 */
public class Thread_yield
{
    public static void main(String[] args)
    {
        Thread3 t31 = new Thread3("------t31");
        Thread3 t32 = new Thread3("======t32");
        t31.start();//并行执行
        t32.start();//并行执行

    }
}

class Thread3 extends Thread{
    Thread3(String name){
        super(name);
    }
    public void run(){
        for (int i = 1; i <= 100; i++)
        {
            System.out.println(getName()+" : "+i);
            if(i%10 == 0){
                yield();//当整除以10的时候,让出cpu给其他线程
            }
        }
    }
}

结果:每当遇到i整除10,就会让其他线程执行

======t32 : 1
------t31 : 1
======t32 : 2
------t31 : 2
======t32 : 3
------t31 : 3
======t32 : 4
------t31 : 4
======t32 : 5
------t31 : 5
======t32 : 6
------t31 : 6
======t32 : 7
------t31 : 7
------t31 : 8
======t32 : 8
------t31 : 9
======t32 : 9
------t31 : 10
======t32 : 10
------t31 : 11
======t32 : 11
------t31 : 12
======t32 : 12
------t31 : 13
======t32 : 13
------t31 : 14
======t32 : 14
------t31 : 15
======t32 : 15
------t31 : 16
======t32 : 16
------t31 : 17
======t32 : 17
------t31 : 18
======t32 : 18
------t31 : 19
======t32 : 19
------t31 : 20
======t32 : 20
------t31 : 21
======t32 : 21
------t31 : 22
======t32 : 22
------t31 : 23
======t32 : 23
------t31 : 24
======t32 : 24
------t31 : 25
======t32 : 25
------t31 : 26
======t32 : 26
------t31 : 27
======t32 : 27
------t31 : 28
======t32 : 28
------t31 : 29
======t32 : 29
------t31 : 30
======t32 : 30
------t31 : 31
======t32 : 31
------t31 : 32
======t32 : 32
------t31 : 33
======t32 : 33
------t31 : 34
======t32 : 34
------t31 : 35
======t32 : 35
------t31 : 36
======t32 : 36
------t31 : 37
======t32 : 37
------t31 : 38
======t32 : 38
------t31 : 39
======t32 : 39
------t31 : 40
======t32 : 40
------t31 : 41
======t32 : 41
------t31 : 42
======t32 : 42
------t31 : 43
======t32 : 43
------t31 : 44
======t32 : 44
------t31 : 45
======t32 : 45
------t31 : 46
======t32 : 46
------t31 : 47
======t32 : 47
------t31 : 48
======t32 : 48
------t31 : 49
======t32 : 49
------t31 : 50
======t32 : 50
------t31 : 51
======t32 : 51
------t31 : 52
======t32 : 52
------t31 : 53
======t32 : 53
------t31 : 54
======t32 : 54
------t31 : 55
======t32 : 55
------t31 : 56
======t32 : 56
------t31 : 57
======t32 : 57
------t31 : 58
======t32 : 58
------t31 : 59
======t32 : 59
------t31 : 60
======t32 : 60
------t31 : 61
======t32 : 61
------t31 : 62
======t32 : 62
------t31 : 63
======t32 : 63
------t31 : 64
======t32 : 64
------t31 : 65
======t32 : 65
------t31 : 66
======t32 : 66
------t31 : 67
------t31 : 68
======t32 : 67
------t31 : 69
======t32 : 68
------t31 : 70
======t32 : 69
------t31 : 71
======t32 : 70
------t31 : 72
======t32 : 71
------t31 : 73
======t32 : 72
------t31 : 74
======t32 : 73
------t31 : 75
======t32 : 74
------t31 : 76
======t32 : 75
------t31 : 77
======t32 : 76
------t31 : 78
======t32 : 77
------t31 : 79
======t32 : 78
------t31 : 80
======t32 : 79
------t31 : 81
======t32 : 80
------t31 : 82
======t32 : 81
------t31 : 83
======t32 : 82
------t31 : 84
======t32 : 83
------t31 : 85
======t32 : 84
------t31 : 86
======t32 : 85
------t31 : 87
======t32 : 86
------t31 : 88
======t32 : 87
------t31 : 89
======t32 : 88
------t31 : 90
======t32 : 89
------t31 : 91
======t32 : 90
------t31 : 92
======t32 : 91
------t31 : 93
======t32 : 92
------t31 : 94
======t32 : 93
------t31 : 95
======t32 : 94
------t31 : 96
======t32 : 95
------t31 : 97
======t32 : 96
------t31 : 98
======t32 : 97
------t31 : 99
======t32 : 98
------t31 : 100
======t32 : 99
======t32 : 100

线程入门之yield的更多相关文章

  1. 线程同步之 yield() wait()

    yield()没有参数. sleep 方法使当前运行中的线程睡眼一段时间,进入不可运行状态,这段时间的长短是由程序设定的,yield 方法使当前线程让出CPU占有权,但让出的时间是不可设定的.yiel ...

  2. 线程同步以及 yield() wait()和notify()、notifyAll()

    1.yield() 该方法与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会. 2.wait()和notify().notifyAll() 这 ...

  3. 线程同步以及yield()、wait()、Notify()、Notifyall()

    一.线程同步 1.线程同步的目的是为了保护多个线程访问一个资源时对资源的破坏. 2.线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对 ...

  4. Java线程sleep,yield,join,wait方法详解

    1.sleep() 当一个线程调用sleep方法后,他就会放弃cpu,转到阻塞队列,sleep(long millis)方法是Thread类中的静态方法,millis参数设定线程睡眠的时间,毫秒为单位 ...

  5. python线程入门

    目录 python线程入门 线程与进程 线程 总结 参考 python线程入门 正常情况下,我们在启动一个程序的时候.这个程序会先启动一个进程,启动之后这个进程会启动起来一个线程.这个线程再去处理事务 ...

  6. 线程中的yield()

    属于本地方法 /** * A hint to the scheduler that the current thread is willing to yield * its current use o ...

  7. 【多线程】线程礼让 Thread.yield()

    线程礼让 Thread.yield() 礼让线程,让当前正在执行的线程暂停,但不阻塞 : 将线程从运行状态转为就绪状态 : 让cpu重新调度,礼让不一定成功!看CPU心情. 代码示例: /** * @ ...

  8. C#线程 入门

    Threading in C#   第一部分: 入门 介绍和概念 C#支持通过多线程并行执行代码.线程是一个独立的执行路径,能够与其他线程同时运行.C#客户端程序(控制台,WPF或Windows窗体) ...

  9. C#线程入门---转载

    C#中的线程(一)入门 文章系参考转载,英文原文网址请参考:http://www.albahari.com/threading/ 作者 Joseph Albahari,  翻译 Swanky Wu 中 ...

随机推荐

  1. TI BLE CC2541的SPI主模式

    SPI就是用4条线来串行传输数据, 2541只能用模拟的方式用GPIO来做. //*********************************************************** ...

  2. Hibernate,JPA注解@SecondaryTable

    使用类一级的 @SecondaryTable或@SecondaryTables注解可以实现单个实体到多个表的映射. 使用 @Column或者 @JoinColumn注解中的table参数可指定某个列所 ...

  3. Caused by: java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/i

    Caused by: java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/i ...

  4. React Native微信分享 朋友圈分享 Android/iOS 通用

    超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用   2016/06/16 |  React Native技术文章 |  Sky丶清|  暂无评论 |  1 ...

  5. 嵌入式jetty的HTTP实现

    2    嵌入式jetty的HTTP实现 布拉君君 2.1 简单HTTP实现 2.1.1 HTTP SERVER端实现 2.1.1.1 HTTP SERVER端实现概述 在代码中嵌入一个Jetty s ...

  6. python:Xml

    <data> <country name="Liechtenstein"> <rank updated="yes">2< ...

  7. data-属性

    html5中出现data标签,该标签可以为div,p,span,td等各种标签提供属性 <div id="button" data-mm='{"name" ...

  8. 更改printk打印级别

    1.查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4    4    1    7 其中第一个"4"表示内核打印函数printk的打印级别,只有 ...

  9. php 计算两个日期之间的差,得出:年月日时分秒

    <?php$time1 = "2008-6-15 11:49:59";//第一个时间$time2 = "2007-5-5 12:53:28";//第二个时 ...

  10. Encoding 分类: HDU 2015-06-25 21:56 9人阅读 评论(0) 收藏

    Encoding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...