A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李会成 于 2013-2-4 15:17 编辑
  1. class Tick implements Runnable
  2. {
  3.     public static int num = 0;
  4.     public int tic = 100;
  5.     public void run()
  6.     {
  7.         while (tic > 0)
  8.         {
  9.             System.out.println(Thread.currentThread().getName()+"--"+tic--);
  10.             num++;
  11.         }
  12.     }
  13. }
  14. class DemoThread2
  15. {
  16.     public static void main(String[] args)
  17.     {
  18.         Tick t = new Tick();
  19.         Thread t1 = new Thread(t);
  20.         Thread t2 = new Thread(t);
  21.         Thread t3 = new Thread(t);
  22.         Thread t4 = new Thread(t);
  23.         t1.start();
  24.         t2.start();
  25.         t3.start();
  26.         t4.start();

  27.         System.out.println("--------------------"+t.num);
  28.     }
  29. }
复制代码
我定义num是为了看看System.out.println(Thread.currentThread().getName()+"--"+tic--);这句代码到底执行了多少次,
我想让t1,t2,t3,t4都执行完毕后再打印下num,有没有什么办法?
呵呵,可能这个没啥意义,不过还是想看一下结果。

4 个回复

倒序浏览
如何让某个线程(所指是那个线程,请说明)执行完后 再继续执行其它代码 所要执行的是什么代码,请说明
回复 使用道具 举报
Tick t = new Tick();
        Thread t1 = new Thread(t);
        Thread t2 = new Thread(t);
        Thread t3 = new Thread(t);
        Thread t4 = new Thread(t);
        Thread.currentThread().setPriority(1);
        /*
         * 我设定了主线程的优先级为最低级,所以它会静静等待其他线程
         * 执行完之后再输出num的值,希望你能满意。
         */
        t1.start();
        t2.start();
        t3.start();
        t4.start();

        System.out.println("--------------------"+t.num);
回复 使用道具 举报
楼上的方法不行,设置了最低级后,不代表不运行
  1. class Tick implements Runnable
  2. {
  3.     public static int num = 0;
  4.     public int tic = 100;
  5.     public void run()
  6.     {
  7.         while (tic > 0)
  8.         {
  9.             System.out.println(Thread.currentThread().getName()+"--"+tic--);
  10.             num++;
  11.         }
  12.                
  13.     }
  14. }
  15. class Day0901
  16. {
  17.     public static void main(String[] args) throws Exception
  18.     {
  19.                 Tick t = new Tick();
  20.         Thread t1 = new Thread(t);
  21.         Thread t2 = new Thread(t);
  22.         Thread t3 = new Thread(t);
  23.         Thread t4 = new Thread(t);
  24.         t1.start();
  25.         t2.start();
  26.         t3.start();
  27.         t4.start();

  28.                
  29.                 t1.join();//join各个线程让主线程等待
  30.                 t2.join();
  31.                 t3.join();
  32.                 t4.join();
  33.                


  34.                 System.out.println("num="+t.num);
  35.     }
  36. }
复制代码
你试试下
回复 使用道具 举报
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。

请勿再次发此类帖子了!

此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马