本帖最后由 邱成 于 2012-9-13 22:45 编辑
在一个循环中产生多个线程实例调用,程序如下:
public class testrun
{
public static void main(String[] args)
{
int i = 1 ;
for (i=1;i <100 ;i++ )
{
new test(i).start();
}
}
}
class test extends Thread
{
private int iNum = 0;
boolean stoped = false;
public test(int num)
{
this.iNum = num ;
}
public void run()
{
synchronized (this) {
while (!stoped)
{
try
{
this.sleep(30);
}catch(Exception e) {
//
}
System.out.println( "正在运行第 " + iNum + "个线程! ");
}
}
}
public void stoped()
{
this.stoped = true;
}
}
运行结果,多个线程无限的在执行,而且顺序并不是从1到100,而是乱的,如果我采用stoped()方法来停止,我在main方法中如何调用????如何才能让线程一个接着一个的去执行?如何控制?其次,如果我的主程序中的循环量很大,比如说1亿次,甚至是100亿次,那将会产生100亿个线程实例,会不会有问题?应该如何处理? |