黑马程序员技术交流社区
标题:
如何让某个线程执行完后再继续执行其它代码[已解决]
[打印本页]
作者:
李征雪
时间:
2012-4-16 15:15
标题:
如何让某个线程执行完后再继续执行其它代码[已解决]
本帖最后由 李征雪 于 2012-4-16 16:21 编辑
class Tick implements Runnable
{
public static int num = 0;
public int tic = 100;
public void run()
{
while (tic > 0)
{
System.out.println(Thread.currentThread().getName()+"--"+tic--);
num++;
}
}
}
class DemoThread2
{
public static void main(String[] args)
{
Tick t = new Tick();
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
System.out.println("--------------------"+t.num);
}
}
复制代码
我定义num是为了看看System.out.println(Thread.currentThread().getName()+"--"+tic--);这句代码到底执行了多少次,
我想让t1,t2,t3,t4都执行完毕后再打印下num,有没有什么办法?
呵呵,可能这个没啥意义,不过还是想看一下结果。
作者:
朱鹏举
时间:
2012-4-16 15:21
class Tick implements Runnable
{
public static int num = 0;
public int tic = 100;
public void run()
{
while (tic > 0)
{
System.out.println(Thread.currentThread().getName()+"--"+tic--);
num++;
}
System.out.println("--------------------"+num);
}
}
class DemoThread2
{
public static void main(String[] args)
{
Tick t = new Tick();
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
复制代码
这样改动后每个线程结束前都会打印当前的num
作者:
李征雪
时间:
2012-4-16 16:18
class Tick implements Runnable
{
public static int num = 0;
public int tic = 1000;
public void run()
{
show();
}
public void show()
{
while (tic > 0)
{
while (tic > 0)
{
System.out.println(Thread.currentThread().getName()+"--"+tic--);
num++;
}
}
}
}
class DemoThread2
{
public static void main(String[] args) throws Exception
{
Tick t = new Tick();
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
t1.join();
t2.join();
t3.join();
t4.join();
System.out.println("--------------------"+t.num);
}
}
复制代码
已经解决了,呵呵,谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2