Thread.yield()方法表示交出主动权,join表示等待当前线程,可以指定秒数

学习了:http://www.importnew.com/14958.html 膜拜一下

源码膜拜:

Thread.yield()没准,顺序输出不一定;

package com.stono.thread;public class YieldExample {public static void main(String[] args) {Thread producer = new Producer();Thread consumer = new Consumer();producer.setPriority(Thread.MIN_PRIORITY);consumer.setPriority(Thread.MAX_PRIORITY);producer.start();consumer.start();}
}class Producer extends Thread{@Overridepublic void run() {for(int i=0;i<5;i++){System.out.println("I am Producer: Procuded Item ============="+ i);Thread.yield();}}
}class Consumer extends Thread{@Overridepublic void run() {for(int i=0;i<5;i++){System.out.println("I am consumer: Consumed Item "+i);Thread.yield();}}
}

Join表示要等待当前线程,可以指定等待的毫秒数;

package com.stono.thread;import java.util.concurrent.TimeUnit;public class JoinExample {public static void main(String[] args) throws InterruptedException {Thread t = new Thread(new Runnable() {public void run() {System.out.println("First task started");System.out.println("Sleeping for 2 seconds");try {//Thread.sleep(2000);TimeUnit.SECONDS.sleep(2);} catch (Exception e) {e.printStackTrace();}System.out.println("First task complete");}});Thread t1 = new Thread(new Runnable() {public void run() {System.out.println("Second task completed");}});t.start();t.join();// t.join(100); // 这个表示等待100毫秒
        t1.start();}
}

转载于:https://www.cnblogs.com/stono/p/8341750.html

Thread.yield()方法表示交出主动权,join表示等待当前线程,可以指定秒数相关推荐

  1. java yeild_Java 中 Thread.yield() 方法详解

    对于很多初学 Java 线程的小伙伴们,很容易将 Thread 类里的 yield() 方法理解错误,或者理解得不够透彻,先看下源码: public static native void yield( ...

  2. java thread yield()_Java Thread yield()方法

    Java Thread yield()方法 java.lang.Thread.yield() 方法使当前执行的线程对象来暂停并允许其他线程执行. 1 语法 public static void yie ...

  3. Java 中Thread的sleep、join、yield方法解析

    1.Thread中sleep方法作用是使当前线程等待,其他线程开始执行,如果有线程锁,sleep不会让出锁 没有加锁代码如下: public class SynchronizedSleepMethod ...

  4. java并发编程之Thread.sleep方法详解

    Thread.sleep方法的作用: 使当前线程暂停执行一段时间,交出cpu的执行时间片,并且在暂停期间不会参与cpu时间片的获取.直到等待时间结束恢复到就绪状态,是否执行还要看OS的调度,或者在这段 ...

  5. Thread.yield()详解

    (1)首先介绍线程运行状态转换,如下图: 新建状态(New):新创建了一个线程对象. 就绪状态(可执行状态,Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位 ...

  6. 从一道面试题分析Thread.interrupt方法

    阿里面试题: public class TestThread {public static void main(String[] args) {Thread t1 = new Thread() {@O ...

  7. java yield方法_Java中的yield方法

    使当前线程从执行状态(运行状态)变为可执行态(就绪状态).cpu会从众多的可执行态里选择,也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会执行其他线程而该线程在下一次中不会 ...

  8. 【多线程】学习记录七种主线程等待子线程结束之后在执行的方法

    最近遇到一个问题需要主线程等待所有的子线程结束,才能开始执行,统计所有的子线程执行结果,返回,网上翻阅各种资料,最后记录一下,找到七种方案 第一种:while循环 对于"等待所有的子线程结束 ...

  9. Thread类中yield方法

    Yield方法可以暂停当前正在执行的线程对象,让其他有相同优先级的线程执行.它是一个静态方法而且只保证当前线程放弃CPU占用而不能保证其它线程一定能占用CPU,执行yield()的线程有可能在进入到暂 ...

最新文章

  1. windows 系统常用操作
  2. Android中的MVP模式初步使用
  3. 面向对象程序设计基本概念
  4. 那个学Python的同龄人,也许已经超越你了!
  5. iOS开发(5)动态监听键盘通知
  6. Bootstrap3 排版-改变大小写
  7. java ab工具_(ab)使用Java 8 FunctionalInterfaces作为本地方法
  8. .NET Core Web API:您需要了解的最少知识(第1部分,共2部分)
  9. php对象合并,【面向对象的PHP】之模式:组合
  10. 【转】AsyncTask的用法
  11. C# Excel 读写数据
  12. 驱动小黑的红点+中键TrackPoint
  13. Intellij IDEA 神级插件
  14. HTML表单元素、标签、iframe内联框架 详细代码图解
  15. Linux环境安装mysql8
  16. excel转html乱码,EXCEL表格中数字乱码是什么原因?
  17. 国产旗舰手机价格泡沫严重,二手比新机更划算,要不然就买iPhone
  18. photoshop标尺工具_如何在Photoshop中使用和掌握非常困难的钢笔工具
  19. 众人逃离北上广后又逃回:观念不合拍还要拼爹
  20. 2022年圣诞节 | matlab实现炫酷的圣诞树

热门文章

  1. confirm弹框修改按钮确认取消为是否
  2. Socket accept failed
  3. 02 如何使用Git
  4. 基于Rails的blog: typo
  5. Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
  6. android通过webservice验证用户 .
  7. category android:name=android.intent.category.DEFAULT / 惹的祸
  8. Eclipse 中 按 Ctrl+Shift+F 格式化代码时每行容纳的字符数
  9. android 设置PopupWindow的显示大小
  10. UltraEdit中OracleSQL的syntax文档