Hướng dẫn what is the difference between thread and threading in python? - sự khác biệt giữa luồng và luồng trong python là gì?

Có một thư viện khác trong Python có thể được sử dụng để xâu chuỗi và hoạt động hoàn hảo.

Thư viện gọi là đồng thời.futures. Điều này làm cho công việc của chúng tôi dễ dàng hơn.

Nó có để tập hợp chủ đề và xử lý gộp.

Sau đây đưa ra một cái nhìn sâu sắc:

Ví dụ về ThreadPoolExecutor

import concurrent.futures
import urllib.request

URLS = ['//www.foxnews.com/',
        '//www.cnn.com/',
        '//europe.wsj.com/',
        '//www.bbc.co.uk/',
        '//some-made-up-domain.com/']

# Retrieve a single page and report the URL and contents
def load_url[url, timeout]:
    with urllib.request.urlopen[url, timeout=timeout] as conn:
        return conn.read[]

# We can use a with statement to ensure threads are cleaned up promptly
with concurrent.futures.ThreadPoolExecutor[max_workers=5] as executor:
    # Start the load operations and mark each future with its URL
    future_to_url = {executor.submit[load_url, url, 60]: url for url in URLS}
    for future in concurrent.futures.as_completed[future_to_url]:
        url = future_to_url[future]
        try:
            data = future.result[]
        except Exception as exc:
            print['%r generated an exception: %s' % [url, exc]]
        else:
            print['%r page is %d bytes' % [url, len[data]]]

Một vi dụ khac

import concurrent.futures
import math

PRIMES = [
    112272535095293,
    112582705942171,
    112272535095293,
    115280095190773,
    115797848077099,
    1099726899285419]

def is_prime[n]:
    if n % 2 == 0:
        return False

    sqrt_n = int[math.floor[math.sqrt[n]]]
    for i in range[3, sqrt_n + 1, 2]:
        if n % i == 0:
            return False
    return True

def main[]:
    with concurrent.futures.ThreadPoolExecutor[] as executor:
        for number, prime in zip[PRIMES, executor.map[is_prime, PRIMES]]:
            print['%d is prime: %s' % [number, prime]]

if __name__ == '__main__':
    main[]

Python những điều cơ bản

Một chủ đề là gì?

Một chủ đề thực thi là chuỗi nhỏ nhất của các hướng dẫn được lập trình có thể được quản lý độc lập bởi bộ lập lịch, thường là một phần của hệ điều hành. Chủ đề trong một chương trình máy tính là một đường dẫn thực hiện. Chủ đề đang tạo ra các đường dẫn thực thi độc lập bổ sung trong chương trình của bạn. Mỗi chương trình bắt đầu với ít nhất một đường dẫn/luồng thực thi. Bạn có thể tạo nhiều luồng hơn để thực hiện các tác vụ song song tùy thuộc vào yêu cầu của bạn. Đó là một khái niệm về việc sử dụng tài nguyên hiệu quả. Có nhiều luồng trong một ứng dụng cung cấp hai lợi thế tiềm năng rất quan trọng:thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler , which is typically a part of the operating system. Thread in a computer program is an execution path. Threading is creating additional independent execution paths in your program. Every program starts with at least one execution path/thread. You can create more threads to execute parallel tasks depending on your requirements. It is a concept of efficient resource utilization . Having multiple threads in an application provides two very important potential advantages:

  1. Cải thiện khả năng đáp ứng nhận thức của một ứng dụng.
  2. Cải thiện hiệu suất thời gian thực của ứng dụng trên các hệ thống đa lõi.

Có thư viện để đạt được nó. Điều quan trọng cần lưu ý là luồng đòi hỏi phải đồng bộ hóa cẩn thận để tránh các điều kiện chủng tộc.

Cách tạo một chủ đề trong Python

Mô -đun "luồng" cung cấp các chức năng đơn giản và giao diện cấp cao hơn được cung cấp trong mô -đun luồng nên được sử dụng thay thế. Điều đầu tiên bạn cần làm là nhập luồng bằng mã sau:"thread" module provides simple functionalities and higher level interface is provided within the threading module that should be used instead. First thing you need to do is to import Thread using the following code:

Một chương trình chủ đề đơn giản

Ví dụ sau đây cho thấy cách chạy một hàm dưới dạng các luồng trong Python. Cách đơn giản nhất là thông qua mô -đun luồng và phương thức start_new_Thread [] của nó.start_new_thread[] method.

Chủ đề.start_new_thread Bắt đầu một luồng mới và trả về định danh của nó. Khi hàm trở lại, luồng âm thầm thoát ra.thread.start_new_thread start a new thread and return its identifier. When the function returns, the thread silently exits.

thí dụ

Tạo một lớp chủ đề

Python cung cấp mô -đun luồng thực hiện một lớp trên đầu mô -đun luồng. Mô -đun luồng cung cấp, trong số những thứ khác, một lớp luồng chứa phương thức chạy []. Việc sử dụng điển hình là phân lớp lớp luồng và ghi đè phương thức Run [] trong lớp con để thực hiện chức năng mong muốn. Để tạo một chủ đề trong Python, bạn sẽ muốn làm cho lớp của bạn hoạt động như một chủ đề. Đối với điều này, bạn nên phân lớp lớp của bạn từ lớp luồng.thread module . The threading module provides, among other things, a Thread class which contains a run[] method . Typical usage is to subclass the Thread class and override the run[] method in the subclass to implement the desired functionality. In order to create a thread in Python you'll want to make your class work as a thread. For this, you should subclass your class from the Thread class .

Ở đây, MyThreadClass là một lớp con của lớp chủ đề. Bước tiếp theo là xác định một phương thức chạy trong lớp này. Phương thức Run [] trong MyThreadClass là điểm nhập cho một luồng. Phương thức Run [] sẽ được thực thi khi chúng tôi gọi phương thức bắt đầu của bất kỳ đối tượng nào trong lớp MyThreadClass của chúng tôi. Bạn có thể viết mã bên trong phương thức Run [] để chạy hoạt động luồng. Có thể chuyển một hàm hoặc đối tượng có thể gọi khác cho hàm tạo lớp luồng để chỉ định mục tiêu mà phương thức Run [] sẽ gọi. Để làm điều này, chúng ta có thể sử dụng luồng chức năng.START_NEW_THREAD:Thread class . Next step is to define a run method in this class. The run[] method in the MyThreadClass is the entry point for a thread. The run[] method will be executed when we call the start method of any object in our MyThreadClass class. You can write code inside the run[] method for running thread activity. It is possible to pass a function or other callable object to the Thread class constructor to specify the target that the run[] method will call. To do this, we can use the function thread.start_new_thread :

Nguồn đầy đủ

đầu ra

Trong ví dụ trên, bạn có thể thấy lớp kế thừa của lớp từ luồng. Chủ đề và vì điều này, bạn cần xác định phương thức chạy [] thực thi mã bạn chạy bên trong luồng. Điều duy nhất có tầm quan trọng cần lưu ý trong phương thức chạy là self.getName [] là một phương thức sẽ xác định tên của luồng. Cuối cùng, t.start [] là những gì thực sự bắt đầu các chủ đề.threading.Thread and because of this, you need to define a run[] method that executes the code you run inside of the thread. The only thing of importance to note in the run method is that self.getName[] is a method that will identify the name of the thread. Finally, t.start[] is what actually starts the threads.



Mô -đun chủ đề và luồng trong Python là gì?

Chủ đề trong một chương trình máy tính là một đường dẫn thực thi. Chủ đề đang tạo các đường dẫn thực thi độc lập bổ sung trong chương trình của bạn. Mỗi chương trình bắt đầu với ít nhất một đường dẫn/luồng thực thi. Bạn có thể tạo nhiều luồng hơn để thực hiện các tác vụ song song tùy thuộc vào yêu cầu của bạn. Threading is creating additional independent execution paths in your program. Every program starts with at least one execution path/thread. You can create more threads to execute parallel tasks depending on your requirements.

Một luồng trong Python là gì?

Việc luồng trong Python được sử dụng để chạy nhiều luồng [tác vụ, cuộc gọi chức năng] cùng một lúc.Lưu ý rằng điều này không có nghĩa là chúng được thực thi trên các CPU khác nhau.Các chủ đề Python sẽ không làm cho chương trình của bạn nhanh hơn nếu nó đã sử dụng thời gian CPU 100 %.used to run multiple threads [tasks, function calls] at the same time. Note that this does not mean that they are executed on different CPUs. Python threads will NOT make your program faster if it already uses 100 % CPU time.

Sự khác biệt giữa luồng và quy trình trong Python là gì?

1. Khi một chương trình được thực hiện, thì nó được gọi là một quy trình. Một đoạn của một quy trình được gọi là luồng.When a program is under execution, then it is known as a process. A segment of a process is known as thread.

Các loại chủ đề trong Python là gì?

Có hai loại chủ đề riêng biệt.Đó là: Chủ đề cấp độ người dùng: Đây là những chủ đề chúng tôi có thể chủ động chơi trong mã của chúng tôi, v.v.User-level threads: These are the ones we can actively play with within our code etc. Kernel-level threads: These are very low-level threads that act on behalf of the operating system.

Bài Viết Liên Quan

Chủ Đề