黑马程序员技术交流社区
标题:
如何让某个线程执行完后再继续执行其它代码
[打印本页]
作者:
李会成
时间:
2013-2-3 19:43
标题:
如何让某个线程执行完后再继续执行其它代码
本帖最后由 李会成 于 2013-2-4 15:17 编辑
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,有没有什么办法?
呵呵,可能这个没啥意义,不过还是想看一下结果。
作者:
铿锵科技
时间:
2013-2-3 20:20
如何让某个线程(所指是那个线程,请说明)执行完后 再继续执行其它代码 所要执行的是什么代码,请说明
作者:
陈科宇
时间:
2013-2-4 00:41
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);
作者:
李挺
时间:
2013-2-4 10:20
楼上的方法不行,设置了最低级后,不代表不运行
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 Day0901
{
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();//join各个线程让主线程等待
t2.join();
t3.join();
t4.join();
System.out.println("num="+t.num);
}
}
复制代码
你试试下
作者:
李培根
时间:
2013-2-18 11:32
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。
请勿再次发此类帖子了!
此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2