Saya memiliki kode seperti ini:

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

Dan beberapa utas akan menggunakan daftar secara bersamaan. seperti arr[0].get(). Saya ingin tahu apakah itu threadsafe. Saya tahu Queue() adalah threadsafe di python. Namun, saya tidak tahu apakah [Queue()] threadsafe.

1
mrsiz 15 Maret 2020, 05:53

1 menjawab

Jawaban Terbaik

Daftar aman untuk dibaca. Selama tidak ada kode yang mengubah ukuran daftar, yang akan membuat pengindeksan daftar tidak aman, Anda dapat membacanya dari semua utas. Karena satu-satunya objek dalam daftar adalah antrean aman utas, Anda siap melakukannya.

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

Jangan mengubah daftar itu sendiri dan aman.

1
tdelaney 15 Maret 2020, 03:06