java双线程的一个小问题【200分】

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:53:14
编写程序,用实现Runnable接口的方法定义一个线程类,实现输出打印100以内能被3整除的数。创建2个线程对象同时执行,名字分别为“one”、“two”。用同步的方法解决某些数字分别被两个线程打印的问题
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
如果要是两个线程做两个工作,我能写出来,但是这个是两个线程做同一个工作,就不知道怎么做了。。希望大哥大姐们,帮帮忙。。谢谢!
还有一点没有说,就是用ruannable能不能实现啊?

class PrintThread implements Runnable {
private String name;
private static Integer i;//100以内的数
private Object o;//锁对象

public PrintThread(String name, Integer i, Object o) {
this.name = name;
this.i = i;
this.o = o;
}

public void run() {
System.out.println(name + " start");
int temp = 0;//计数器
synchronized (o) {
while (i < 100) {
// System.out.println(name+" start");

if (i % 3 == 0) {
if (temp < 2) {//每个线程一次最多打印2个数
System.out.println(name + ": " + i);
temp++;
o.notifyAll();
} else {
temp = 0;
try {
o.wait();
} catch (Exception e) {
e.printStackTrace();
}
}
}
i++;
}
}
}
}

public class ThreadTest {
private static Integer i = 1;
public