How to use multithreading in Python?

王林
Release: 2023-06-03 18:21:06
Original
3165 people have browsed it

With the development of computers, the data we need to process is getting larger and larger, and some tasks take a long time to complete. In order to improve the efficiency of programs, many programmers have begun to pay attention to multi-threading technology, which allows programs to perform multiple subtasks at the same time. In this article, we will introduce how to use multithreading in Python.

1. What is multi-threading?

In programming, a thread refers to the smallest unit in a program that can run independently. Compared with single-threaded programs, multi-threaded programs can perform multiple tasks at the same time. This means that if we have multiple tasks that need to be completed, we can use multi-threading to make these tasks happen simultaneously in different threads, thereby shortening the time required for the program.

2. Why use multi-threading?

When using a single-threaded program, if we want to complete two long-lasting tasks A and B, then we need to execute them in sequence. That is, if task A takes 10 seconds, then we have to wait those 10 seconds before executing task B. If you do this, the efficiency of the program will be very low.

However, if we use multi-threading technology to execute tasks A and B at the same time, even if they both take 10 seconds, the total time will only be 10 seconds. Doing so not only improves efficiency but also saves time.

3. Multithreading in Python

Python uses the threading module to implement multithreading. In the threading module, there are mainly the following important classes:

  • Thread: This class represents a separate thread.
  • Lock: This class is used to control access to shared resources by multiple threads to avoid contention and data corruption.
  • RLock: This class is similar to Lock, but allows the same thread to acquire the lock multiple times.
  • Condition: This class is used for coordination and communication between multiple threads.

In addition, there are some functions and methods, such as current_thread(), enumerate(), etc., which are used to support multi-threaded programming.

Below, we will demonstrate a multi-threading example, using the threading.Thread class to implement.

4. Example

We will write a simple thread to simulate a time-consuming task and a shorter task. We'll use two threads to accomplish both tasks to demonstrate the utility of multithreading.

First, we need to introduce the threading module.

import threading
Copy after login

Next, define two functions: one simulates a time-consuming task and the other simulates a shorter task. These two functions respectively use the sleep() method in the time module to simulate the execution time of the task.

import time
 
def long_task():
  print('开始执行一个耗时的任务')
  time.sleep(5)   # 模拟任务执行时间为5秒钟
  print('执行完毕')
 
def short_task():
  print('开始执行一个较短时间的任务')
  time.sleep(2)   # 模拟任务执行时间为2秒钟
  print('执行完毕')
Copy after login

Next, we use the threading.Thread class to create two threads, each thread executing the above two functions respectively.

t1 = threading.Thread(target=long_task)   # 创建线程1
t2 = threading.Thread(target=short_task)  # 创建线程2
 
t1.start()   # 启动线程1
t2.start()   # 启动线程2
 
t1.join()    # 等待线程1运行完毕
t2.join()    # 等待线程2运行完毕
 
print('程序运行结束')
Copy after login

In the above code, we use the threading.Thread class to create two threads t1 and t2. Each thread uses the two functions defined above as tasks, of which long_task() is used for long-term tasks and short_task() is used for short-term tasks.

In the main thread, we use the start() method to start two threads. The start() method will call the thread's run() method to perform the task. Then we use the join() method to wait for both threads to finish running.

Finally, we output "Program End" to let us know that the program has ended.

Run the above code, we will see the following output:

开始执行一个耗时的任务
开始执行一个较短时间的任务
执行完毕
执行完毕
程序运行结束
Copy after login

It can be seen that the thread that performs the shorter task ends before the thread that performs the time-consuming task. This shows that multi-threading does improve the efficiency of the program.

Although this example is simple, it demonstrates how to use Python for multi-threaded programming.

5. Summary

In this article, we introduced the concept and advantages of multi-threaded programming and how Python uses the threading module to support multi-threaded programming. The sample code shows how to create threads, define thread tasks, and control the execution order of threads.

Multi-threading is a very useful tool when we need to process large amounts of data or perform some time-consuming tasks. I hope this article helped you understand the basic concepts of multithreading and how to use multithreading in Python.

The above is the detailed content of How to use multithreading in Python?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact [email protected]
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!