我希望有一个名为
例如:
到目前为止,我唯一的解决方案是一个带有堆栈的类,但它不是并发安全的。有没有任何并发安全的解决方案?
编辑:正如Sraw所指出的那样,我说线程安全时实际上是并发安全,已相应更改问题。
conManager
的对象,它是一个可重入上下文管理器实例,每当我进入和退出它的上下文时,它将打印一个数字,但该数字必须比先前上下文的数字高1(从0开始)。例如:
with conManager:
print("Afirst")
with conManager:
print("Asecond")
with conManager:
print("third")
print("Bsecond")
print("Bfirst")
期望输出:
0
Afirst
1
Asecond
2
third
2
Bsecond
1
Bfirst
0
到目前为止,我唯一的解决方案是一个带有堆栈的类,但它不是并发安全的。有没有任何并发安全的解决方案?
编辑:正如Sraw所指出的那样,我说线程安全时实际上是并发安全,已相应更改问题。
int
和大多数基本对象都是线程安全的,包括list
的append
和pop
方法。 - SrawconManager
,它可能会弹出另一个协程留下的值,这使得它不安全,因为不能保证第一个上下文离开是最后一个进入的。 - bentheiii