sách gpt4 ai đã đi

Nhóm Python với các tiến trình làm việc

In lại Tác giả: IT Lao Gao Thời gian cập nhật: 2023-10-28 22:10:57 29 4
mua khóa gpt4 Nike

Tôi đang cố gắng sử dụng nhóm công nhân trong Python bằng cách sử dụng đối tượng quy trình. Mỗi công nhân (một quy trình) thực hiện một số khởi tạo (mất nhiều thời gian), được chuyển một danh sách các công việc (lý tưởng nhất là sử dụng bản đồ()), và trả về một cái gì đó. Ngoài ra, không cần phải giao tiếp gì thêm. Tuy nhiên, tôi không thể tìm ra cách sử dụng map() để sử dụng công nhân của tôi tính toán() chức năng.

từ đa xử lý nhập khẩu Pool, Quy trình

Lớp Worker(Process):
định nghĩa __init__(bản thân):
in 'Công nhân bắt đầu'
# thực hiện một số khởi tạo ở đây
super(Người làm việc, bản thân).__init__()

def compute(self, data):
in 'Tính toán mọi thứ!'
trả về dữ liệu * dữ liệu

nếu __name__ == '__main__':
# Điều này hoạt động tốt
công nhân = Công nhân()
công nhân in.tính toán(3)

# công nhân được khởi tạo tốt
pool = Pool(quy trình = 4,
người khởi tạo = Công nhân)
dữ liệu = phạm vi(10)
# Làm thế nào để sử dụng nhóm công nhân của tôi?
kết quả = pool.map(tính toán, dữ liệu)

Hàng đợi công việc có phải là sự thay thế không, hay tôi có thể sử dụng bản đồ()?

1 Câu trả lời

Tôi khuyên bạn nên sử dụng hàng đợi cho việc này.

Lớp Worker(Process):
def __init__(bản thân, hàng đợi):
super(Người làm việc, bản thân).__init__()
self.queue = hàng đợi

def run(tự):
print('Công nhân đã bắt đầu')
# thực hiện một số khởi tạo ở đây

print('Tính toán mọi thứ!')
đối với dữ liệu trong iter(self.queue.get, None):
# Sử dụng dữ liệu

Bây giờ bạn có thể bắt đầu một loạt những việc này, tất cả đều thực hiện công việc từ một hàng đợi duy nhất

request_queue = Hàng đợi()
đối với i trong phạm vi (4):
Công nhân(request_queue).start()
đối với dữ liệu trong the_real_source:
request_queue.put(dữ liệu)
# Đối tượng Sentinel cho phép tắt máy sạch: 1 đối tượng cho mỗi công nhân.
đối với i trong phạm vi (4):
request_queue.put(Không có)

Một điều gì đó như thế này sẽ cho phép bạn chia nhỏ chi phí khởi nghiệp tốn kém cho nhiều nhân công.

Liên quan đến nhóm Python với quy trình làm việc, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/9038711/

29 4 0
CNTT Lao Gao
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com