Java中使用继承Ruannable来实现多线程的操作以及同步的使用

    xiaoxiao2021-03-25  76

    class MyThread implements Runnable { Thread thrd; MyThread(String name){ thrd = new Thread(this,name);//通过在构造器里实例化Thread对象 thrd.start(); } public void run(){ System.out.println(thrd.getName()+"starting"); try { for (int i = 0; i<10 ; i++) { Thread.sleep(400); System.out.println("子线程:"+thrd.getName()+ "计数"+i+"  "); } } catch (InterruptedException exc) { System.out.println("InterruptedException"); } System.out.println("子线程结束!"); } } class  ExtendsThread { public static void main(String[] args)  { int i=0; System.out.println("主线程开始!!"); MyThread mt1 = new MyThread("Child #1"); MyThread mt2 = new MyThread("Child #2"); MyThread mt3 = new MyThread("Child #3"); do { try { Thread.sleep(100); System.out.print("主线程:"+ "计数"+(i++)+"  "); } catch (InterruptedException exc) { System.out.println("InterruptedException"); } }while(mt1.thrd.isAlive()||mt2.thrd.isAlive()||mt3.thrd.isAlive()); //这里把判断条件设置为子线程还在运行 System.out.println("主线程结束!"); }

    }

    1 如果在多线程里对某个方法加锁(也就是保持某个线程对资源的持续占用)可以在public static void run()里添加 synchronized(){}方法来使得对某个方法调用的同步。

    转载请注明原文地址: https://ju.6miu.com/read-33958.html

    最新回复(0)