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. Thinking In Java 读书笔记

    面向对象语言,五个基本特性: 1)万物皆为对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型.即:每个对象都是 ...

  2. 各种数据库连接代码的测试类(java)

    测试类: public class Mytest { Connection conn=null; Statement stmt=null; String myDriver="com.mysq ...

  3. java技术用ssh从linux服务器下载数据

    通常需要从linux服务器获取数据文件,而通常能有的访问方式只有ssh,所以就可以用ssh进行数据下载. java连接远程主机的方式有多种,这里和大家分享的是通过ssh方式连接远程主机,使用的是jsc ...

  4. oracle日期函数2!

    1.日期时间间隔操作  当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当前时间减去7小时的时间 ...

  5. HDU 2846:Repository(Trie)

    http://acm.hdu.edu.cn/showproblem.php?pid=2846 题意:给出N个模式串,再给出M个文本串,问每一个文本串在多少个模式串中出现. 思路:平时都是找前缀的,这里 ...

  6. canvas 动画

    1.随机产生形状,做360度运转,带有一个开始开始按钮一个停止按钮 var canvas=$('.mycanvas'); canvas.attr("width",500);//$( ...

  7. Asp.net Vnext Routing

    概述 本文已经同步到<Asp.net Vnext 系列教程 >中] ASP.NET 路由系统是主要负责两个操作: 它将传入的 HTTP 请求映射到路由处理程序给出的路由的集合. 路由系统的 ...

  8. Floyd-Warshall算法,简称Floyd算法

    Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3). 使用条件&范围通常可以在任何图中使用,包括有向图.带负权边的图. Floyd-W ...

  9. 使用kendoui实现日期除去工作日

    <input type="text" id="div-timePrint" value="" readonly="false ...

  10. Unity-Animator深入系列---剪辑播放后位置预判(Animator.Target)

    回到 Animator深入系列总目录 animator.SetTarget(...);可以在播放前预判剪辑播放后的位置,但只限于人形动画 参数1是预判的关节,参数2是映射的剪辑时间 调用后通过targ ...