Tôi đang làm việc trong Windows 7 với Python Idle. Tôi có hai chương trình,
# progA
while True:
m = input['progA is running ']
print [m]
và
# progB
while True:
m = input['progB is running ']
print [m]
Tôi mở nhàn rỗi và sau đó mở tệp proga.py. Tôi chạy chương trình và khi được nhắc nhập, tôi nhập
# progB
while True:
m = input['progB is running ']
print [m]
2 và sau đó # progB
while True:
m = input['progB is running ']
print [m]
3Tôi đang nhìn vào cửa sổ này:
Python 3.6.3 [v3.6.3:2c5fed8, Oct 3 2017, 17:26:49] [MSC v.1900 32 bit [Intel]] on win32
Type "copyright", "credits" or "license[]" for more information.
>>>
= RESTART: C:\Users\Mike\AppData\Local\Programs\Python\Python36-32\progA.py =
progA is running b
b
progA is running c
c
progA is running
Tiếp theo, tôi quay lại Windows Start và mở một lần nữa, lần này mở tệp progb.py. Tôi chạy chương trình và khi được nhắc nhập, tôi nhập
# progB
while True:
m = input['progB is running ']
print [m]
4 và sau đó # progB
while True:
m = input['progB is running ']
print [m]
5Tôi đang nhìn vào cửa sổ này:
Tiếp theo, tôi quay lại Windows Start và mở một lần nữa, lần này mở tệp progb.py. Tôi chạy chương trình và khi được nhắc nhập, tôi nhập# progB
while True:
m = input['progB is running ']
print [m]
4 và sau đó # progB
while True:
m = input['progB is running ']
print [m]
5
Python 3.6.3 [v3.6.3:2c5fed8, Oct 3 2017, 17:26:49] [MSC v.1900 32 bit [Intel]] on win32
Type "copyright", "credits" or "license[]" for more information.
>>>
= RESTART: C:\Users\Mike\AppData\Local\Programs\Python\Python36-32\progB.py =
progB is running x
x
progB is running y
y
progB is running
# Số dư ban đầu
BAL = Multiprocessing.value ['I', 100]
#file a.py print["a"] #file b.py print["b"] #file c.py print["c"]
# Tạo đối tượng khóa
Khóa = Multiprocessing.Lock []
# Tạo quy trình
$ python a.py b.py c.py a b c
Proc1 = MultipRocessing.Process [Target = WTHDRW, ARGS = [BAL, LOCK]]
Proc2 = MultipRocessing.Process [Target = DPST, ARGS = [BAL, LOCK]]]
$ vi test.sh
# Khởi động quá trình
file_list=["/home/ubuntu/a.py" "/home/ubuntu/b.py" "/home/ubuntu/c.py"] for py_file in "${file_list[@]}" do python ${py_file} done
# Chờ các quy trình kết thúc
$ chmod +x test.sh
# In Số dư cuối cùng
print ["Balance cuối cùng = {}". Định dạng [bal.value]]]
cho _ trong phạm vi [10]:
import os os.system['python /home/ubuntu/a.py'] os.system['python /home/ubuntu/b.py'] os.system['python /home/ubuntu/c.py']
# Thực hiện quy trình giao dịch
# progB
while True:
m = input['progB is running ']
print [m]
0Bạn có thể tạo một tệp Python thứ tư d.py trong cùng một thư mục với 3 tệp Python khác, nhập 3 tệp Python khác và chạy các chức năng của chúng, như được hiển thị bên dưới.
# progB
while True:
m = input['progB is running ']
print [m]
1Trong bài viết này, chúng tôi đã học được cách chạy nhiều tệp Python.
Cũng đọc:
Cách hợp nhất các tệp PDF bằng Pythonhow để thực hiện sao lưu gia tăng trong mysqlhow để chuyển mật khẩu ssh trong shell scriptMysql thay đổi lưu trữ bảng từ innodb sang myisamhow để cài đặt phông chữ trong ubuntu
How to Do
Incremental Backup in MySQL
How to Pass SSH Password in Shell Script
MySQL Change Table Storage from InnoDB to MyISAM
How to Install Fonts in Ubuntu
Bài viết liên quan:
Bạn có thể cho phép nhiều lần chạy bằng cách chọn Cho phép chạy song song trong menu Cấu hình chỉnh sửa. Để chạy động tất cả các tệp chương trình Python trong một thư mục nhất định, chúng tôi có thể chạy tệp tập lệnh Bash để thực hiện tác vụ này. Với sự giúp đỡ của tập lệnh trên này, chúng ta có thể chạy tất cả. Tệp mở rộng PY được đặt trong đường dẫn thư mục đã cho. Với mỗi lần lặp, chương trình này sẽ chạy mọi tệp Python. Đa xử lý trong Python là một gói tích hợp cho phép hệ thống chạy đồng thời nhiều quy trình. Nó sẽ cho phép phá vỡ các ứng dụng thành các luồng nhỏ hơn có thể chạy độc lập. Hệ điều hành sau đó có thể phân bổ tất cả các luồng hoặc quy trình này cho bộ xử lý để chạy chúng tương đương, do đó cải thiện hiệu suất và hiệu quả tổng thể. Tại sao sử dụng đa xử lý trong Python? Giả sử có những nhân viên khác nhau, mỗi nhân viên để thực hiện một nhiệm vụ cụ thể. Nó trở nên đơn giản hơn, phải không? Đó là lý do tại sao đa xử lý trong Python trở nên cần thiết. Các chủ đề nhiệm vụ nhỏ hơn hoạt động giống như các nhân viên khác nhau, giúp xử lý và quản lý các quy trình khác nhau dễ dàng hơn. Một hệ thống đa xử lý có thể được biểu diễn là: Một bộ xử lý đa lõi, tức là, một đơn vị điện toán duy nhất có nhiều đơn vị xử lý lõi độc lậpLàm cách nào để chạy nhiều tệp python trong một tệp?
Một hệ thống có nhiều hơn một bộ xử lý trung tâm duy nhất
- Trong đa xử lý, hệ thống có thể chia và gán các tác vụ cho các bộ xử lý khác nhau.
- Mô -đun đa xử lý là gì?
- Mô -đun đa xử lý Python cung cấp nhiều lớp cho phép chúng tôi xây dựng các chương trình song song để thực hiện đa xử lý trong Python. Nó cung cấp một API dễ sử dụng để phân chia các quy trình giữa nhiều bộ xử lý, do đó tận dụng hoàn toàn đa xử lý. Nó khắc phục các hạn chế của khóa phiên dịch toàn cầu [GIL] bằng cách sử dụng các quy trình phụ thay vì các luồng. Các lớp chính của mô -đun đa xử lý Python là:
Quá trình
Ví dụ - Sử dụng lớp quy trình để thực hiện đa xử lý trong Python
# Nhập mô -đun đa bộ xử lý Python
Nhập đa xử lý
def prnt_cu [n]:
print ["khối lập phương: {}". định dạng [n * n * n]]]
def prnt_squ [n]:
print ["hình vuông: {}". định dạng [n * n]]]
Nếu __name__ == "__main__":
# Tạo nhiều quy trình
Proc1 = MultipRocessing.Process [Target = prnt_squ, args = [5,]]
Proc2 = MultipRocessing.Process [Target = prnt_cu, args = [5,]]
# Khởi đầu quá trình 1
proc1.start[]
# Khởi đầu quá trình 2
proc2.start[]
# Chờ cho đến khi Proc1 kết thúc
proc1.join[]
# Chờ cho đến khi Proc2 kết thúc
proc2.join[]
# Quá trình kết thúc
In ["Cả hai quá trình đã hoàn thành!"]
Đầu ra
Bây giờ, nó đã đến lúc hiểu mã trên và xem mô -đun đa xử lý và lớp xử lý giúp xây dựng các chương trình song song như thế nào.
- Trước tiên, bạn đã sử dụng lệnh Nhập Multiprocessing để nhập mô -đun.
- Tiếp theo, bạn đã tạo các đối tượng lớp quy trình: Proc1 và Proc2. Các đối số được truyền trong các đối tượng này là:
- Mục tiêu: Các chức năng được sử dụng
- Args: Đối số được đưa ra trong các chức năng
- Sau khi xây dựng đối tượng, bạn phải sử dụng phương thức start [] để bắt đầu các quy trình.
- Cuối cùng, bạn đã sử dụng phương thức tham gia [] để dừng thực thi chương trình hiện tại cho đến khi nó thực thi các quy trình. Do đó, chương trình trước tiên sẽ chạy Proc1 và Proc2. Sau đó, nó sẽ quay trở lại các câu sau của chương trình đang chạy.
Các đường ống được sử dụng để đa xử lý trong Python là gì?
Trong khi sử dụng đa xử lý trong Python, các đường ống hoạt động như kênh truyền thông. Các đường ống rất hữu ích khi bạn muốn bắt đầu giao tiếp giữa nhiều quy trình. Họ trả về hai đối tượng kết nối, một cho mỗi đầu của đường ống và sử dụng các phương thức gửi [] & recv [] để giao tiếp. Hãy cùng nhìn vào một ví dụ cho một sự hiểu biết rõ ràng. Trong mã dưới đây, bạn sẽ sử dụng một đường ống để gửi một số thông tin từ trẻ đến kết nối cha mẹ.
Nhập đa xử lý
Từ quá trình nhập khẩu đa xử lý, đường ống
def exm_function [c]:
& nbsp; & nbsp; & nbsp; & nbsp; c.send [['hi! Đây là thông tin con']]]
c.close[]
Nếu __name__ == '__main__':
& nbsp; & nbsp; & nbsp; & nbsp; par_c, chi_c = pipe []
& NBSP; & nbsp; & nbsp; & nbsp;
mp1.start[]
in [par_c.recv []]
mp1.join[]
Đầu ra
Bây giờ, nó đã đến lúc hiểu mã trên và xem mô -đun đa xử lý và lớp xử lý giúp xây dựng các chương trình song song như thế nào.
Trước tiên, bạn đã sử dụng lệnh Nhập Multiprocessing để nhập mô -đun.
Nhập đa xử lý
Tiếp theo, bạn đã tạo các đối tượng lớp quy trình: Proc1 và Proc2. Các đối số được truyền trong các đối tượng này là:
Mục tiêu: Các chức năng được sử dụng
Args: Đối số được đưa ra trong các chức năng
n.put[i]
Nếu __name__ == "__main__":
# Tạo nhiều quy trình
Proc1 = MultipRocessing.Process [Target = prnt_squ, args = [5,]]
p.start[]
Proc2 = MultipRocessing.Process [Target = prnt_cu, args = [5,]]
# Khởi đầu quá trình 1
print[n.get[]]
Đầu ra
Bây giờ, nó đã đến lúc hiểu mã trên và xem mô -đun đa xử lý và lớp xử lý giúp xây dựng các chương trình song song như thế nào.
Trước tiên, bạn đã sử dụng lệnh Nhập Multiprocessing để nhập mô -đun.
Nhập đa xử lý
Tiếp theo, bạn đã tạo các đối tượng lớp quy trình: Proc1 và Proc2. Các đối số được truyền trong các đối tượng này là:
Mục tiêu: Các chức năng được sử dụng
Args: Đối số được đưa ra trong các chức năng
lock.acquire[]
Sau khi xây dựng đối tượng, bạn phải sử dụng phương thức start [] để bắt đầu các quy trình.
lock.release[]
Cuối cùng, bạn đã sử dụng phương thức tham gia [] để dừng thực thi chương trình hiện tại cho đến khi nó thực thi các quy trình. Do đó, chương trình trước tiên sẽ chạy Proc1 và Proc2. Sau đó, nó sẽ quay trở lại các câu sau của chương trình đang chạy.
Các đường ống được sử dụng để đa xử lý trong Python là gì?
Args: Đối số được đưa ra trong các chức năng
Sau khi xây dựng đối tượng, bạn phải sử dụng phương thức start [] để bắt đầu các quy trình.
Cuối cùng, bạn đã sử dụng phương thức tham gia [] để dừng thực thi chương trình hiện tại cho đến khi nó thực thi các quy trình. Do đó, chương trình trước tiên sẽ chạy Proc1 và Proc2. Sau đó, nó sẽ quay trở lại các câu sau của chương trình đang chạy.
lock.release[]
Các đường ống được sử dụng để đa xử lý trong Python là gì?
Trong khi sử dụng đa xử lý trong Python, các đường ống hoạt động như kênh truyền thông. Các đường ống rất hữu ích khi bạn muốn bắt đầu giao tiếp giữa nhiều quy trình. Họ trả về hai đối tượng kết nối, một cho mỗi đầu của đường ống và sử dụng các phương thức gửi [] & recv [] để giao tiếp. Hãy cùng nhìn vào một ví dụ cho một sự hiểu biết rõ ràng. Trong mã dưới đây, bạn sẽ sử dụng một đường ống để gửi một số thông tin từ trẻ đến kết nối cha mẹ.
Từ quá trình nhập khẩu đa xử lý, đường ống
def exm_function [c]:
& nbsp; & nbsp; & nbsp; & nbsp; c.send [['hi! Đây là thông tin con']]]
Nếu __name__ == '__main__':
& nbsp; & nbsp; & nbsp; & nbsp; par_c, chi_c = pipe []
& NBSP; & nbsp; & nbsp; & nbsp;
in [par_c.recv []]
proc1.start[]
proc2.start[]
Các hàng đợi được sử dụng để làm đa số trong Python là gì?
proc1.join[]
proc2.join[]
Hàng đợi trong Python là một cấu trúc dữ liệu dựa trên khái niệm FIFO [lần đầu tiên đầu tiên]. Giống như đường ống, ngay cả một hàng đợi cũng giúp giao tiếp giữa các quá trình khác nhau trong đa xử lý trong Python. Nó cung cấp các phương thức put [] và get [] để thêm và nhận dữ liệu từ hàng đợi. Ở đây, một ví dụ để hiển thị việc sử dụng hàng đợi để đa xử lý trong Python. Mã này sẽ tạo một hàm để kiểm tra xem một số chẵn hay số lẻ và chèn nó vào hàng đợi. Sau đó, bạn sẽ bắt đầu quá trình và in các số.
def chẵn_no [num, n]:
Nếu __name__ == "__main__":
& nbsp; & nbsp; & nbsp; & nbsp; for i in num:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
transact[]
Đầu ra
Bây giờ, nó đã đến lúc hiểu mã trên và xem mô -đun đa xử lý và lớp xử lý giúp xây dựng các chương trình song song như thế nào.
Sự kết luận
Trong bài viết này, bạn đã tìm hiểu về những gì đang đa xử lý trong Python và cách sử dụng nó. Việc sử dụng thực tế nhất của đa xử lý là chia sẻ các tài nguyên CPU và các hoạt động ATM, như bạn đã thấy trong ví dụ cuối cùng. Vì sự dễ dàng mà nó cung cấp để quản lý nhiều quy trình, khái niệm đa xử lý trong Python chắc chắn sẽ có được nhiều lực kéo. Đó sẽ là một động thái khôn ngoan để có được sự hiểu biết vững chắc và thực hành thực hành. & NBSP;
Nếu bạn là một người mới và điều này quá khó để tiêu hóa, bạn có thể bắt đầu học những điều cơ bản trước. Bạn có thể tham khảo hướng dẫn Python SimplileArn sườn cho người mới bắt đầu để làm quen với các khái niệm Python cơ bản. Một khi bạn rõ ràng với những điều cơ bản, bạn có thể chọn khóa học chứng nhận Python trực tuyến của chúng tôi để vượt trội trong phát triển Python.
Bạn có câu hỏi nào cho chúng tôi không? Để lại cho họ trong phần bình luận của bài viết này. Các chuyên gia của chúng tôi sẽ liên hệ lại với bạn trên cùng, càng sớm càng tốt.
Học hỏi!