Java编程常见误区解析
1. 线程同步中的误区
在多线程编程中,我们需要注意避免一些不必要的检查。例如,在判断线程是否处于 WAITING 状态时,有时这种检查是多余的。以下是一个示例代码:
public class Waiter {
// ...
private Thread thread;
private volatile boolean flag;
private final Object lock = new Object();
public boolean stop() {
if (thread != null) {
synchronized (lock) {
flag = true;
lock.notifyAll();
}
return true;
}
return false;
}
}
在这个代码中,移除了判断线程是否处于 WAITING 状态的检查。因为调用 notifyAll() 方法只会影响那些在 wait() 方法调用中被阻塞的线程,所以这个检查是不必要的。同时,依赖 Thread 类的 sleep() 、 yield() 和 ge
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



