读书人

神啊救救小弟我吧小弟我只想用两个线

发布时间: 2012-03-04 11:13:34 作者: rapoo

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

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() + "完成 "); // 显示线程的完成信息
}
}

读书人网 >J2SE开发

热点推荐