互联网面试宝典

您现在的位置是: 首页 > 数据结构

问题详情

实现一个并发安全的栈,支持 push 和 pop 操作。

面试宝典 2023-06-12 Web前端开发工程师 38
可以使用锁来实现并发安全的栈,具体实现如下:

```python
import threading

class ConcurrentStack:
def __init__(self):
self.stack = []
self.lock = threading.Lock()

def push(self, item):
with self.lock:
self.stack.append(item)

def pop(self):
with self.lock:
if len(self.stack) == 0:
return None
return self.stack.pop()
```

在 push 和 pop 操作中,使用 with self.lock 来获取锁,确保每个操作的原子性。这样就能保证在多线程的情况下,栈的操作是并发安全的。