Thread优先级之让步

/**
 * <p>标题: Threadyield</p>
 * <p>
 *    功能描述:线程让步
 *        yield的作用是当前线程调用它后,那么此时该线程放弃cpu执行权,从运行状态转到可运行状态,它不会导致阻塞。
 *        它的刹那点,就和其它线程争抢cpu执行权。
 * </p>
 * <p>创建日期: 2016年3月4日 下午2:57:38</p>
 * <p>作者: lzd</p>
 * <p>版本: 1.0</p>
 */
public class Threadyield {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {

            @Override
            public void run() {
                int i= 0;
                while (i++<100) {
                    System.out.println(Thread.currentThread().getName()+"..............."+i);
                }
            }
        });
        thread.start();

        Thread.currentThread().yield();//主线程main让出cpu执行权
        int j= 0;
        while (j++<100) {
            System.out.println(Thread.currentThread().getName()+"..............."+j);
        }
    }
}
时间: 2024-11-05 20:38:44

Thread优先级之让步的相关文章

Thread优先级之优先级别

注:所谓的线程优先级高就是同其它线程争抢cpu的执行几率高而已,但是企图通过线程优先级来控制业务是不可行的. /** * <p>标题: Threadyield</p> * <p> * 功能描述:线程通过setpriority(int param)来设置优先级,优先级从低到高为1-10正整数.默认优先级为5. * Thread有三个常量定义了线程的优先级范围 * Thread.MIN_PRIORITY;最低1 * Thread.NORM_PRIORITY;默认5 * Th

Java 多线程(二)之 Thread 优先级

Thread 中线程优先级相关属性 每个线程均有优先级,在 Thread 中, 与优先级对应的属性如下: /** * 线程的优先级属性 */ private int priority; /** * 线程所能拥有的最大优先级. */ public final static int MIN_PRIORITY = 1; /** * 线程默认的优先级. */ public final static int NORM_PRIORITY = 5; /** * 线程所能拥有的最大优先级. */ public

java进阶07 线程的让步与阻塞与同步

前面介绍了线程的一些基本知识,现在来说下线程的让步,阻塞,和同步 先说说让步 所谓让步,就是让调用者的线程暂停,让其他线程重新竞争CPU,包括调用者. 先看看代码 package Thread; public class ThreadYield { public static void main(String[] args){ MyThread5 rthread=new MyThread5(); Thread thread1=new Thread(rthread); Thread thread2

Java 线程第三版 第九章 Thread调度 读书笔记

一.Thread调度的概述 import java.util.*; import java.text.*; public class Task implements Runnable { long n; String id; private long fib(long n) { if (n == 0) return 0L; if (n == 1) return 1L; return fib(n - 1) + fib(n - 2); } public Task(long n, String id)

Java多线程学习(二)

一.定义产生返回值的任务 在上一篇文的介绍中,我们知道了定义任务通常的方法是定义一个实现Runnable接口的类,这个类被我们成为任务.然而也很容易注意到,任务的最重要的一个方法就是run( )方法,而run( )方法是没有返回值的,也就是说我们之前定义的任务不返回任何值. 如果想要定义一个有返回值的任务,则需要编写一个实现Callable接口的类.Callable是一种具有类型参数的泛型,他的类型参数表示的是call( )方法的返回值类型. 示例如下: 1 import java.util.c

浅析线程及同步

守护线程 通常情况下 后台的应用程序就是守护程序 被守护的线程结束了即使守护的线程没有结束那么也将会结束 线程的局部变量:解决多线程共享同个对象的时候,对象属性数据安全问题 ThreadLocal通过get获取 线程池:线程的容器可以帮助我们进行线程的创建.ExecutorService 说明:线程类,创建线程的主要类 Thread currentThread() 获取当前代码所在的线程对象 String getName() 获取线程的名称 主线程名:main 子线程名:Thread-编号,编号

j2ee(5) 线程

1.理清概念 并行与并发: *并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时. *并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时.并发往往在场景中有公用的资源,那么针对这个公用的资源往往产生瓶颈,我们会用TPS或者QPS来反应这个系统的处理能力. 2.线程创建 * 继承thread类创建多线程 public class Example01 { public static void main(String[] args) { MyThrea

Android工程师面试准备知识点

听+7哥说,把下面的全弄懂,面试必过,所以我就试着去把所有题目补充了一下,各位能耐的网友们,如果有吐槽或者补充的尽管给我留言,在这里谢过大家了. 1.   android的多线程如何通信 答:Android提供了Handler和Looper来满足线程间的通信. Handler是消息的处理者,可以发布或者处理或者操作一个Runnable, handler接受消息后调用handleMessage进行处理. Looper是Handler与消息队列之间通讯桥梁,程序组件通过Handler把消息传递给Lo

【转载】uCOS系统的思考

一:  世界潮流,浩浩汤汤,顺之者昌,逆之者亡---孙中山 从80X86到ARM9,再从ARM9到ARM7,平台是越做越简单,但是简单并不是意味着退步,反而是种潮流趋势... 在CISC道路上渐行渐远的INTEL,在移动市场无所作为,而且服务器市场也面临着ARM的潜在威胁. 废话不多说,还是直入主题: CISC:复杂指令集 局限:CISC早期的计算机部件比较昂贵,主频低,运算速度慢.目的:为了提高运算速度,行动:人们不得不将越来越多的复杂指令加入到指令系统中,以提高计算机的处理效率,这就逐步形成