Tôi cần phải tạo một đối tượng được chia sẻ của một mảng đa chiều hoặc danh sách các danh sách để nó có sẵn cho các quy trình khác. Có cách nào để tạo ra nó như cho những gì tôi đã thấy nó là không thể. Tôi đã thử:Tôi có thể tạo multiarray hoặc danh sách đối tượng danh sách được chia sẻ trong python để đa xử lý không?
from multiprocessing import Process, Value, Array
arr = Array('i', range(10))
arr[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[2]=[12,43]
TypeError: an integer is required
tôi nghe NumPy mảng có thể multiarray và một đối tượng chia sẻ, nếu ở trên là không thể ai đó có thể cho tôi biết làm thế nào để làm cho một mảng NumPy một đối tượng chia sẻ ??
Tôi không chắc chắn về phần đa xử lý, nhưng tôi biết tại sao bạn nhận được TypeError ở đó: Bạn đã khởi tạo mảng của mình cho các giá trị số nguyên trong dòng thứ hai. Trong dòng thứ 5, bạn cố gán một danh sách cho một điểm trong mảng. Mảng là đối tượng mức tương đối thấp và không thể giữ danh sách, dicts, bộ và các loại container python khác. –
Vâng đó là những gì tôi biết, tôi biết tại sao tôi nhận được TypeError. Đó là lý do tại sao tôi hỏi nếu có cách nào vượt qua vấn đề này, hoặc tạo một đối tượng chia sẻ "List", hoặc có thể làm thế nào để sử dụng Numpy Arrays có thể là đa điểm và làm cho chúng được chia sẻ các đối tượng. – user1249212
Xem lại các mục này. Sau đó, xây dựng một cấu trúc dữ liệu xung quanh chúng: http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm. – MrGomez