java多线程问题

[复制链接]
查看11 | 回复4 | 2011-1-26 14:29:56 | 显示全部楼层 |阅读模式
我现在又50个线程在跑,我怎么知道最后跑完的是哪个线程?
感谢二位的回答,我的需求是这样子的,我有50000数据,用多线程分两个跑,一次跑25000,当25000跑完后,我再让多线程重新接着跑,需要让最后一个线程重定向,所以就问的是这个问题!
针对变量加1的话,假设线程1跑完了线程2怎么知道线程1完了呢?

回复

使用道具 举报

千问 | 2011-1-26 14:29:56 | 显示全部楼层
线程启动之后,在CPU时钟周期里CPU根据空闲资源的情况,随机给每个等待中线程分配资源,所以说哪个线程先,哪个线程后都是系统随机分配的,程序是无法控制的!--------------------------------------------补充说明你可以在两个线程里面都添加一个所有数据是否已经都处理完毕啊,完毕的话就执行重定向操作啊。至于判断是否结束的依据,你可以根据自己的需要来确定。我提供一种笨一点的方法,初始化一个变量,在线程中每操作一条就让这个变量加一,如果这个变量的值等于总数的时候,表示已经结束了。
回复

使用道具 举报

千问 | 2011-1-26 14:29:56 | 显示全部楼层
线程的资源获取是随机的,没办法百分百去确定哪个线程什么时候执行,不过还是有一定的方法限制一下,不过不能做到一定,我有几个关于多线程的电子档,需要的话联系我,给我邮件[email protected].
回复

使用道具 举报

千问 | 2011-1-26 14:29:56 | 显示全部楼层
public Thread.State getState()返回一个具体的线程状态对象public final boolean isAlive()检测线程是否在活动状态建议多查查api API上这些全都说清楚了。
回复

使用道具 举报

千问 | 2011-1-26 14:29:56 | 显示全部楼层
在控制台输出一下不就知道了..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行