java线程休眠
A. java中如何实现多个线程进行不同时间的休眠
public class A extends Thread {
private long times;
public setTimes(long times){
this.times = times ;
}
public A(){}
//或者
// public A(long times){
// this.times = times
// }
public void run{
dosomething
this.sleep(times);
}
public static void main(String[] args) {
A a1 = new A(1000);
A a2 = new A();
a2.setTimes = 2000;
A a3 = new A(3000);
a1.start();
a2.start();
a3.start();
}
}
B. java多线程调用同步方法时,休眠后代码为什么执行不到
1、java多线程调用同步方法时主程序或者后台服务Service程序两者必须有一个正在运行着,定时任务才会执行。
2、自动执行的任务可以设置开启或关闭定时,检查任务的这一开关处于开启状态。
3、源目录在定时的时间点如果没有变化,任务执行后不会留下日志,通过查看任务的最后执行时间确定任务到底执行了没有。
4、执行失败和没有执行不是同一回事,如果是执行失败则要分析失败原因。这是java多线程调用同步方法时,休眠后代码执行不到的原因。
C. Java线程中的sleep方法作用是啥,啥时候用此方法
sleep(毫秒数)是Thread类的静态方法。
使用时:Thread.sleep(毫秒数);
如Thread.sleep(1000);该线程睡眠1秒钟,之间此线程什么都不做。
等1秒钟之后,继续余下代码执行。
不过线程是没有保证的。也许1秒钟之后,该线程没有转为可运行状态,也是可能的。
D. java线程sleep是准时唤醒吗
是。
sleep时间,代表的是当前的线程休眠。
E. java如何用Runnable实现让这线程断断续续的休眠
R r=new R(); 没有必要,等于每个R对象运行时就会产生一个新的R对象,好在你没让它运行起来。否则内存递推很快就满了。
talentwei8899说的对,直接使用Thread.CurrentThread.sleep(1000);
休眠的是当前线程。
若想让进程休眠时间不同,休眠的时间可取个随机数。
F. java 线程sleep 是何时被调用的
sleep()方法是属于线程本身的,直接调用Thread.sleep(毫秒数)就可以使用
sleep()主要是让当前线程进入休眠状态,不会释放锁,把时间片让给其他线程,等休眠时间结束,再继续执行。这里的再继续执行不是立马执行,也许并发时候,某一个线程优先级比较高,那么即使是休眠结束也不会执行,还得优先级高的先执行。
G. JAVA的线程的sleep()方法是否占用CPU
不会。
sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。所以不会占用cpu。
H. Java线程如何在方法中指定某个线程休眠或者停止
首先能确定你的代码没有问题,其中有一个警告是你的sleep没有以静态方式调用;
this是指当前类的一个对象,你的mythread类中根本就没有sleep方法,谈何调用勒;
用t来调用不是出现错误,而是一个警告
the static method sleep(long) from the type thread should be accessed in a static way并提供了两种fix方法。
一个静态方法需要以一个静态方式去访问调用,如果你使用该类型的一个实例去调用,也是可以的,不过这就违背了设计静态关键字的意愿了,静态方法或变量是先于类构造之前就存在了。