传说这是阿里的一道面试题: 也传说发这道题出来的作者去了tmail。下面是关于题目的描述:
这段代码大多数情况下运行正常,但是某些情况下会出问题。什么时候会出现什么问题?如何修正?可见博客 http://yueyemaitian.iteye.com/blog/1387901
- public class MyStack {
- private List<String> list = new ArrayList<String>();
- public synchronized void push(String value) {
- synchronized (this) {
- list.add(value);
- notify();
- }
- }
- public synchronized String pop() throws InterruptedException {
- synchronized (this) {
- if (list.size() <= 0) {
- wait();
- }
- return list.remove(list.size() - 1);
- }
- }
- }