在做个高并发的项目,发现个的情况向大家请教。
下面的代码很简单。就是开2000个线程,线程里就是个死循环,每次循环sleep 20 ms.
当 sleep 20 ms的时候,我的CPU占用10-50%左右。
可是当改为sleep 19或者21 ms的时候,CPU占用一直100%。
为啥?
下面的代码很简单。就是开2000个线程,线程里就是个死循环,每次循环sleep 20 ms.
当 sleep 20 ms的时候,我的CPU占用10-50%左右。
可是当改为sleep 19或者21 ms的时候,CPU占用一直100%。
为啥?
public static void main(String[] args) {
for (int i = 0; i < 2000; i++) {
new Thread() {
public void run() {
while (true) {
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
}