• java09-05 join_daemon


    yield:放弃CPU的抢占全

    jion:等制定的线程执行完毕后继续运行 谁join就等待谁执行完毕,在往下走

    sleep:静态方法 ,让线程休眠毫秒

    daemon:守护线程,如果应用程序里面都是守护线程,则程序结束

    class ThreadDemo2{
    public static void main(String[] agrs) {

    Player p1 =new Player("史泰龙",8000);
    Player p2 =new Player("成龙",5000);
    Player p3 =new Player("李小龙",2000);
    Player p4 =new Player("李连杰",3000);
    p1.start();
    p2.start();
    p3.start();
    p4.start();

    //join 等这个分线程执行完毕在往下执行 join方法也有异常
    try{
    p1.join();
    p2.join();
    p3.join();
    p4.join();
    }
    catch(Exception e){

    }

    System.out.println("人到齐了");
    }

    }

    class Player extends Thread{
    private String name;
    private int time;
    public Player( String name,int time){
    this.name =name;
    this.time=time;
    }


    public void run(){
    System.out.println("玩家"+name+"出发了");
    try{
    //让当前进程休眠time 毫秒
    Thread.sleep(time);
    }
    catch(Exception e){
    }
    System.out.println("玩家" +name+"到了");

    }
    }

    ktv点歌线程

    ------------------------------------------------------------------

    class NineThreadDemo3{
    public static void main(String[] agrs) {

    Room R =new Room("1",8000);
    Waiter w =new Waiter();
    //一个主线程,一个房间线程,一个服务生线程
    //设置线程为守护线程 w.setDaemon(true); 守护非守护线程的
    //w.setDaemon(true);
    R.start();
    w.start();

    }

    }

    class Room extends Thread{
    private String no;
    private int time;
    public Room( String no,int time){
    this.no =no;
    this.time=time;
    }


    public void run(){
    System.out.println("房间"+no+"正在唱歌");
    try{
    //让当前进程休眠 time 毫秒
    Thread.sleep(time);
    }
    catch(Exception e){
    }
    System.out.println("房间" +no+"买单");

    }
    }


    //服务员每隔一秒就包时间
    class Waiter extends Thread{
    //只有是服务员就是守护线程
    public Waiter(){
    this.setDaemon(true);
    }
    public void run(){
    while(true){
    System.out.println(new java.util.Date());
    try{
    //每隔一秒报一次
    Thread.sleep(1000);
    }
    catch(Exception e){

    }
    }
    }
    }

    //p1.jion 是等p1执行完后 在往下走另一个p2  ,但是并没有影响p2,p3,p4多线程,有可能就已经先跑结束。结束后,都要加入到主线程里面来。

  • 相关阅读:
    Qt 打开UI是提示Runtime Error! 。。。 然后奔溃
    Qt exe和动态 库获取运行所需库
    区分EXE或者动态库dll是32位或者64位方法
    QFile 读2进制文件
    MFC 动态库编译错误
    Qt 编译错误
    Qt QNetworkProxy类帮助翻译
    Qt QHttpMultiPart类帮助翻译
    Qt QNetworkCookie帮助翻译
    Qt QHttpPart翻译
  • 原文地址:https://www.cnblogs.com/simly/p/10511167.html
Copyright © 2020-2023  润新知