cuốn sách gpt4 ai đã làm

Phương pháp xử lý đa tiến trình và đa tham số của Python

In lại Tác giả: Người biết Thời gian cập nhật: 2024-03-13 05:02:32 30 4
mua khóa gpt4 Nike

1. Phương thức pool.map() đa tiến trình 1

nhập thời gian từ multiprocessing.pool nhập Pool def numsCheng(i): return i * 2 if __name__ == '__main__': time1 = time.time() nums_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] pool = Pool(processes=5) result = pool.map(numsCheng, nums_list) pool.close() # Đóng nhóm quy trình và không còn chấp nhận các quy trình mới pool.join() # Quy trình chính chặn và chờ thoát khỏi quy trình con print(result) time2 = time.time() print("Calculation time:", time2- thời gian1)

kết quả:

[2, 4, 6, 8, 10, 12, 14, 16, 18] Thời gian tính toán: 0,21639275550842285

Giải thích:

1. Xem rằng Pool có tham số quy trình. Không cần đặt tham số này. Nếu chức năng này không được đặt, số lượng quy trình được chạy sẽ được xác định dựa trên tình hình thực tế của máy tính. bản thân chúng ta, nhưng chúng ta phải xem xét hiệu suất của máy tính của chúng ta.

2. hàm map(). Hai tham số cần được truyền vào. Tham số đầu tiên là hàm cần được tham chiếu. Tham số thứ hai là một đối tượng có thể lặp, nó sẽ truyền lần lượt các phần tử cần được lặp vào tham số đầu tiên của hàm của chúng ta. Vì bản đồ của chúng ta sẽ tự động truyền dữ liệu dưới dạng tham số

3. Khi pool() được bật, đừng quên sử dụng pool.close() và pool.join() để đóng nhóm tiến trình và để khối tiến trình chính chờ thoát khỏi tiến trình con.

2. Phương thức pool.map() đa tiến trình 2

Mã số:

từ nhập đa xử lý Pool def cal(item): n, mod = item res = 1 for i in range(2, n+1): res = res * i % mod return res if __name__ == "__main__": args = [ ] cho i trong phạm vi (1, 10): args.append((i,1000000007)) với Pool(10) là pool: results = pool.map(cal, args) print(results)

Kết quả chạy:

[1, 2, 6, 24, 120, 720, 5040, 40320, 362880]

3. Xử lý tình huống đa thông số:

Mã số:

thời gian nhập nhập đa xử lý def job(x ,y): """ :param x: :param y: :return: """ return x * y def job1(z): """ :param z: :return: " "" return job(z[0], z[1]) if __name__ == "__main__": time1=time.time() pool = multiprocessing.Pool(2) data_list=[(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8) ,(9,9),(10,10)] res = pool.map(job1,data_list) time2=time.time() print(res) pool.close() pool.join() print('Tổng thời gian tiêu tốn :' + str(time2 - thời gian1) + 's')

Kết quả chạy:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] Tổng thời gian đã sử dụng: 0,24999451637268066s
30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress