有关sleep()的问题,在线求教!!!!
public class ThreadTM
{
public static void main(String [] args)
{
ThreadMTs t= new ThreadMTs();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
class ThreadMTs implements Runnable
{
private int tick=100;
String str =new String("");
public void run()
{
while(true)
{
synchronized(str)
{
if(tick>0)
{
try
{
Thread.sleep(10);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
System.out.println(Thread.currentThread().getName()+"is saling ticket"+tick--);
}
}
}
}
}
请问在这个程序中,第一个线程到了Thread.sleep(10);的时候,是不是就不再执行下面System.out.println(Thread.currentThread().getName()+"is saling ticket"+tick--);的代码了,而是立刻切换到第二个线程去执行另外一个对象了,这时第二个线程运行,我就在想如果老是这么下去,岂不是永远都执行不了System.out.println(Thread.currentThread().getName()+"is saling ticket"+tick--);语句了么?
2。如果将sleep(10)放到System.out.println(Thread.currentThread().getName()+"is saling ticket"+tick--);之后,和第一种用法产生的效果一样么?
我比较疑惑,请大家帮助我好么!