Bạn có thể chạy nhiều chức năng cùng một lúc trong Python không?

Một cách phổ biến để chạy các chức năng song song với Python là sử dụng mô-đun đa xử lý mạnh mẽ, nó có nhiều tùy chọn để cấu hình và rất nhiều thứ để điều chỉnh

Tham gia Medium với liên kết giới thiệu của tôi - Konstantinos Patronas

Đọc mọi câu chuyện từ Konstantinos Patronas [và hàng nghìn nhà văn khác trên Medium]. Phí thành viên của bạn trực tiếp…

lovethepenguin. com

Nhưng nếu chúng ta chỉ muốn một chức năng rất đơn giản như chạy một số chức năng song song và không có gì khác thì sao?

Chúng ta có thể sử dụng hàm bao bọc sau đây cho việc này

def run_parallel[*functions]:
'''
Run functions in parallel
'''
from multiprocessing import Process
processes = []
for function in functions:
proc = Process[target=function]
proc.start[]
processes.append[proc]
for proc in processes:
proc.join[]

Hàm này cho phép chúng ta nhập tham số vào bất kỳ hàm nào có hoặc không có tham số và được thực thi song song

Thí dụ

#!/usr/bin/env python3def task_a[]:
print['this is task a']
def task_b[]:
print['this is task b']
def hello[msg]:
print['Hello: %s'%[msg]]
def run_parallel[*functions]:
'''
Run functions in parallel
'''
from multiprocessing import Process
processes = []
for function in functions:
proc = Process[target=function]
proc.start[]
processes.append[proc]
for proc in processes:
proc.join[]
if __name__ == '__main__':
run_parallel[task_a[],task_b[],hello[msg="konstantinos"]]

Thực hiện điều này sẽ mang lại kết quả sau

this is task a
this is task b
Hello: konstantinos

Điều này thật hay và đơn giản, nhưng làm thế nào chúng ta sẽ lấy lại kết quả từ các chức năng?

Để làm được điều này, chúng ta cần sử dụng một biến dùng chung như danh sách và nối kết quả của hàm vào danh sách

Các hàm lapply[] và sapply[] có thể được sử dụng để thực hiện nhiều chức năng trên một danh sách trong R. Chức năng này được sử dụng để tránh việc sử dụng các vòng lặp trong R. Sự khác biệt giữa cả hai hàm là hàm sapply[] thực hiện công việc tương tự như hàm lapply[] nhưng trả về một vectơ. Một hàm sẽ được xác định chứa nhiều hàm và được chuyển vào sapply[] và lapply[] làm đối số. Công thức này minh họa cách chúng ta có thể áp dụng nhiều hàm trên một danh sách trong R cùng một lúc

Bước 1 - Xác định danh sách

values

Chủ Đề