日期:2014-05-20  浏览次数:20721 次

神啊,救救我吧,我只想用两个线程来完成这个任务,可是总是不好使

public   class   Thh   {

/**
  *   @param   args
  */
public   static   void   main(String[]   args)   {
 
 
Thh   t=new   Thh();
Inner   in=t.new   Inner();
for(int   i=0;i <2;i++){
Thread   tt=new   Thread(in);
tt.start();
}
 
}
class   Inner   implements   Runnable{
public   void   run(){
for(int   i=0;i <100;i++){
System.out.println(i);
}
}
}

}
我就是想演示一下多线程,我的目标是要用两个线程来同时打印输出public   void   run()里的语句,可是现在执行的效果是一个线程做一次循环,然后另外一个线程在做一次循环,不是两个线程同时执行run方法


------解决方案--------------------
输出100个数一眨眼的功夫就完了所以看不到效果
可以在run()方法里加上这句:Thread.sleep(100);
------解决方案--------------------
主要是时间片轮换间隔问题,没等轮到NEXT线程,100个数就打印完了!
------解决方案--------------------
Thh t=new Thh();

for(int i=0;i <2;i++){
Thread tt=new Thread(t.new Inner());
tt.start();
}
------解决方案--------------------
public class SimpleThreadDemo {
// 启动线程的主方法
public static void main(String[] args) {
new SimpleThread1( "线程1 ").start(); // 线程1启动
new SimpleThread1( "线程2 ").start(); // 线程2启动
}
}

class SimpleThread1 extends Thread {

public SimpleThread1(String str) {
super(str); // 设置线程的标题
}

public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i + " " + getName());
// 让程序暂时停止执行的时间,以便更清楚地观察线程相互执行
try {
sleep((long) (Math.random() * 1000));
} catch (InterruptedException e) {
}
}
System.out.println(getName() + "完成 "); // 显示线程的完成信息
}
}