为什么用 synchronized (lockobject) { if (energyboxs[from] < amount) return;加重系统开销呢?
如果加入了synchronized块,每个线程都会有所谓"加锁",形成互斥,然后完整执行完线程,而这段代码使得那些所谓能量源不足的energyboxs[from]退出当前方法,然后不就和其他线程一样,获得分时再次获得cpu去执行线程内容,也就是和其他线程一样获得锁执行run方法,如何说这个(energyboxs[from] < amoun的线程会家中系统开销呢?我认为退出后再次执行不就和其他要执行的线程一样无异,为何偏偏说(energyboxs[from] < amount的线程会加重开销呢?
相关代码:private final Object lockobject = new Object();
synchronized (lockobject) {
if (energyboxs[from] < amount)
return;