多线程列表[Queue()]线程安全吗?

Multithread list[Queue()] threadsafe?

我有这样的代码:

arr = [Queue() for _ in range(10)]

并且一些线程会同时使用该列表。比如arr[0].get()。我很好奇它是否是线程安全的。我知道 Queue() 在 python 中是线程安全的。但是,我不知道[Queue()]是否是线程安全的。

列表是读取安全的。只要没有代码改变列表的大小,这会使索引列表不安全,您就可以从所有线程读取它。由于列表中的唯一对象是线程安全队列,您可以开始了。

arr[0].push("foo")
bar = arr[0].pop()

不要更改列表本身并且是安全的。