zoukankan      html  css  js  c++  java
  • 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多线程,有可能就已经先跑结束。结束后,都要加入到主线程里面来。

  • 相关阅读:
    既然来了,就要在这扎根
    vuejs 组件 移动端push 没有渲染页面
    cucumber——BDD的一个自动化测试的副产品
    Spock框架——单元测试框架
    Mockito——用于 Java 开发的模拟测试框架
    TestNG——开源自动化测试框架
    selenium/appium/airtest——UI测试工具
    rest-assured 使用指南——接口测试
    JUnit 4.1——單元測試框架
    二、面向對象(补充)
  • 原文地址:https://www.cnblogs.com/simly/p/10511167.html
Copyright © 2011-2022 走看看