写一个线程,是一个while死循环,在线程里面用了sleep(2000)方法但是实际的时间都会达不到效果
比如上一个项目中,我写sleep(5000),实际只有1秒的样子现在我写sleep(1000),直接不休眠代码如下:boolean key=true;
while(key)
{
Log.d("","");
sleep(2000);
}
求解答为何,并且如何实现暂停
还有,貌似我直接调用线程的stop方法也有问题,比如Thread p = new Thread()
{
}p.start();if(p.isAlive())
p.stop();求解答
比如上一个项目中,我写sleep(5000),实际只有1秒的样子现在我写sleep(1000),直接不休眠代码如下:boolean key=true;
while(key)
{
Log.d("","");
sleep(2000);
}
求解答为何,并且如何实现暂停
还有,貌似我直接调用线程的stop方法也有问题,比如Thread p = new Thread()
{
}p.start();if(p.isAlive())
p.stop();求解答
stop()是Deprecated的:这种方式停止线程是不安全的,会使应用程序和VM的状态不可预知
{
try
{
wait(5000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我有用一个key来控制while,我就是单纯想问问
我开始就是用的这个,但是发现用了这个根本不会暂停我是在一个service里面,建立了一个thread,thread的run里面是一个while循环,循环内部这样写的
[java example]你还在使用while(true) Thread.sleep吗?
但是有个疑问阿如果像这样说,wait释放了锁,超时后不一定能执行那么导致的结果应该是,while就不执行了,卡这了,但是我得到的结果是他根本没停阿
如果没有优先级比它高的,就会执行,要看cpu调度了。