如何用一个打印口诀内容线程、一个打印tab("\t")线程和一个换行线程来打印99乘法表我先前用两个线程打印了99乘法表
代码如下:
class NewLine implements Runnable   //换行线程
{
public void run()
{
while(true)
{
synchronized("str")
{
if(NumTable.stop) break;
System.out.println();

try
{
Thread.sleep(1);
}catch(InterruptedException e){}

}

}
}
}
public class NumTable implements Runnable
{
static boolean stop=false;
public void run()
{
for(int i=1;i<=9;i++)
{
synchronized("str")
{
for(int j=1;j<=i;++j)
{
System.out.print(j+"x"+i+"="+j*i+"\t");
}
try
{

Thread.sleep(10);
}catch(InterruptedException e){}

}

}
stop=true;
}
public static void main(String [] args)
{
new Thread(new NumTable()).start();
new Thread(new NewLine()).start();

}


}用3个线程来实现要考虑线程同步和通信问题,我花了好久也没能实现,请高手指点!!!!!!!!

解决方案 »

  1.   

    sleep??不行吧    windows的API是  WaitForSingleObject(h,-1);  JAVA的不懂  应该也有这么一个API   要是没有2个CPU或者双核  这种代码比一个线程的起码慢N倍(WINDOWS下面是这样的 从用户态转到内核态要1000多个CPU指令)
      

  2.   

    挖靠 楼上的好强~跨平台回答问题:)
    ---------------------
    都是程序 为什么非要分不个不同呢  WaitForSingleObject这个API WINDOWS有的 JAVA也肯定要有  没有就没法做线程锁了 那JAVA的线程就是垃圾  这话对不对呢?
      

  3.   

    java的线程控制可以用 wait/notify