2021-05-21 多线程

package com.company.domo01;

public class domo01 {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        // t1.run() ;  // 普通调用
        t1.start();   //  多线程调用
    }
}

package com.company.domo01;

public class MyThread extends  Thread{

    @Override
    public void run() {
        System.out.println("自定义的线程类,继承自thread");
    }
}

 /*
 *  1 extends Thread
 *  2 复写 run 方法
 *  3 调用 start()
 *
 * */

package com.company.domo02;

public class domo02 {
    public static void main(String[] args) {
        MyRunable myRunable = new MyRunable();
      new Thread(myRunable).start();
    }
}

package com.company.domo02;

public class MyRunable implements  Runnable{
    @Override
    public void run() {
        System.out.println("接口方式实现多线程");

    }
}
/*

*  1 implements Runnable
*  2 实现run方法
*  3 创建自定义线程对象,加入到系统线程,start启动
*
* */

package com.company.domo03;

public class domo03 {
    public static void main(String[] args) {
       Thread t1 = new Thread() {
           public void Run() {
               System.out.println("线程1");
           }
       };

        Thread t2 = new Thread() {
            public void Run() {
                System.out.println("线程2");
            }
        };

        Thread t3 = new Thread() {
            public void Run() {
                System.out.println("线程3");
            }
        };

        new Thread() {
            public void run() {
                try {
                    t1.join();  // 线程的插队 ,会按照顺序执行
                    t2.join();
                    t3.join();
                    sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                try {
                    Thread.sleep(10000);
                }catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("主线程在运行");

            }
        }.start();
        t1.start();
        t2.start();
        t3.start();
    }
}
package com.company.domo04;

public class domo04 {
    public static void main(String[] args) {
        Runnable maipiao = new Runnable() {

            @Override
            public void run() {
                synchronized (this) {
                    System.out.println(
                            Thread.currentThread().getName() +
                                    "卖出一张票,还剩:" + (--TicketContent.count) + "张");
                }
            }

        };
        new Thread(maipiao, "窗口1").start();
        new Thread(maipiao, "窗口2").start();
        new Thread(maipiao, "窗口3").start();
        new Thread(maipiao, "窗口4").start();
        new Thread(maipiao, "窗口5").start();
    }
}

package com.company.domo04;

public class TicketContent {
  public static int count = 50;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容