Hướng dẫn multithreading in python w3schools - đa luồng trong python w3schools

Khi các lập trình viên chạy một chương trình Python đơn giản, việc thực hiện bắt đầu ở dòng đầu tiên và tiến hành từng dòng. Ngoài ra, các chức năng và vòng lặp có thể là lý do để thực hiện chương trình để nhảy, nhưng tương đối dễ dàng để thấy các quy trình làm việc của nó và dòng nào sẽ được thực hiện tiếp theo. Các lập trình viên có thể đặt ngón tay của họ và có thể theo dõi các dòng mã sẽ được thực thi; Điều này được gọi là lập trình đơn luồng.

Tuy nhiên, trong trường hợp lập trình nhiều luồng, nó giống như đặt một ngón tay thứ hai vào chương trình của bạn. Cả hai ngón tay di chuyển theo cùng một cách và sẽ được thực hiện đồng thời.

Chủ đề là gì?

Đó là việc thực hiện một chuỗi hướng dẫn chương trình nhỏ có thể được quản lý độc lập và là một phần đặc biệt của hệ điều hành. HĐH hiện đại quản lý nhiều chương trình bằng cách sử dụng kỹ thuật chia sẻ thời gian. Trong Python, có hai loại sợi khác nhau. Đó là:

  • Kernel Chủ đề
  • Chủ đề không gian người dùng hoặc luồng người dùng

Tại sao sử dụng chủ đề

Chủ đề đóng một vai trò quan trọng trong lập trình ứng dụng. Tất cả các chương trình GUI và máy chủ web được tập hợp lại với nhau. Những lý do chính cho việc sử dụng các chủ đề là:

  • Tính toán song song: Nếu bất kỳ người dùng nào có máy đa bộ xử lý, thì luồng có thể cho phép xử lý song song với mục tiêu tăng tốc độ xử lý.: If any user has a multiprocessor machine, then the thread can allow doing parallel processing with the goal of an increase in processing speed.
  • Tiêu chuẩn hóa: Nó trở thành một cách tiếp cận tiêu chuẩn cho tất cả các ngôn ngữ lập trình khi nó tăng tốc độ lập trình.: It became a standard approach for all programming languages as it increases programming speed.
  • Song song I/O (đầu vào/đầu ra): Khi chúng ta nói về tốc độ đầu vào & đầu ra, nó tương đối chậm trong CPU. Bằng cách đặt mỗi hoạt động I/O trong nhiều luồng riêng lẻ, các lập trình viên có thể sử dụng các hoạt động được thực hiện song song với nhau và với tốc độ tính toán.: When we talk about the speed of input & output, it is comparatively slow in CPU. By placing each i/o operations in multiple individual threads, programmers can make use of operations done in parallel with each other & with the computation speed.
  • Các sự kiện không đồng bộ: Nhiều ứng dụng luồng có thể đối phó với các hành động không đồng bộ. Ví dụ, trong một chương trình, các lập trình viên có thể không biết liệu hành động tiếp theo sẽ là sử dụng chuột hay sử dụng bàn phím. Bằng cách trồng một luồng riêng cho mỗi hành động, tức là, hai luồng cho cả chuột và bàn phím, các lập trình viên có thể mã hóa một ứng dụng sạch hơn, hiệu quả, đó là sử dụng các hoạt động I/O không chặn.: Multiple threaded applications can deal with asynchronous actions. For example, in a program, programmers may not know whether the next action will be to use the mouse or to use the keyboard. By planting a separate thread for each action, i.e., two threads both for mouse and keyboard, programmers are able to code a cleaner, efficient application, which is to use non-blocking I/O operations.

Mô -đun chủ đề trong Python

Có hai cách truy cập các chủ đề Python. Đây là bằng cách sử dụng:

  • Mô -đun PY
  • Mô -đun PY

Cần lưu ý rằng mô -đun 'Tread' đã được xem xét là sử dụng ít hơn và do đó người dùng có thể sử dụng mô -đun 'luồng' thay thế. Một điều khác phải lưu ý rằng mô -đun 'luồng' coi luồng là một hàm, trong khi 'luồng' được triển khai như một đối tượng.

Lợi ích của việc luồng

  • Đối với một quy trình duy nhất, nhiều luồng có thể được sử dụng để xử lý và chia sẻ cùng một không gian dữ liệu và có thể liên lạc với nhau bằng cách chia sẻ thông tin.
  • Họ sử dụng chi phí bộ nhớ ít hơn và do đó chúng được gọi là các quy trình nhẹ.
  • Một chương trình có thể vẫn đáp ứng với đầu vào khi các luồng được sử dụng.
  • Chủ đề có thể chia sẻ và xử lý bộ nhớ của biến toàn cầu.

Trong một chủ đề, có ba phần khác nhau. Nó có sự khởi đầu, một phần thực thi và một kết luận. Nó cũng có một con trỏ hướng dẫn chỉ ra nơi luồng hoặc quy trình hiện đang chạy và do đó luồng có thể chạy một số khối chương trình khác nhau đồng thời.

Sử dụng một chủ đề mới

Có thể thực hiện được các chức năng trong một luồng riêng biệt bằng cách sử dụng luồng mô -đun. Để thực hiện điều này, các lập trình viên có thể sử dụng hàm - Thread.start_new_thread ().

Cú pháp:

thread.start_new_thread(function, args[, kwargs])

Ở đây, phần đầu tiên là một phương thức như đã nói trước và phương pháp này là một cách nhanh hơn và hiệu quả hơn để tạo các chủ đề mới. Khi chủ đề con bắt đầu, chức năng chuyển một danh sách các arg. Chủ đề bị chấm dứt khi hàm trả về một giá trị. 'Args' trong cú pháp trên là một bộ lý đối số.

Chương trình luồng bằng cách sử dụng python

Thí dụ:

import threading

def coder(number):
    print ('Coders:  %s' , %number)
    return

threads = []
for k in range(5):
    t = threading.Thread(target=coder, args=(k,))
    threads.append(t)
    t.start()

Đầu ra:

Coders: 0

Coders: 1

Coders: 2

Coders: 3

Coders: 4

Phương pháp của lớp chủ đề

Mô-đun luồng, như được mô tả trước đó, có một lớp luồng được sử dụng để thực hiện các luồng và lớp đó cũng chứa một số phương thức được xác định trước được sử dụng bởi các lập trình viên trong lập trình nhiều luồng. Đó là:

  • chạy (): nó hoạt động như là mục nhập của luồng: It acts as the entry of the thread
  • start (): được sử dụng để bắt đầu luồng bằng cách gọi Run (): is used for starting the thread by calling the run()
  • isalive (): được sử dụng để xác minh xem vẫn thực thi hay không: is used to verify whether the still executing or not
  • getName (): được sử dụng để trả về tên của một luồng: is used for returning the name of a thread
  • setName (): được sử dụng để đặt tên của luồng: is used to set the name of the thread

Hướng dẫn multithreading in python w3schools - đa luồng trong python w3schools