threading用法

发布时间 2023-08-26 12:56:55作者: linux星

threading模块是Python的标准库之一,提供了多线程编程的支持。以下是threading模块的一些常用方法:

 

1. threading.Thread(target=function, args=(), kwargs={}, name=None):创建一个新线程,并指定其执行的函数、参数和关键字参数。

2. threading.active_count():返回当前活动的线程数。

3. threading.current_thread():返回当前线程对象。

4. threading.enumerate():返回一个包含所有当前活动线程的列表。

5. threading.get_ident():返回当前线程的标识符。

6. threading.settrace(func):为当前线程设置一个跟踪函数。

7. threading.start_new_thread(function, args=(), kwargs={}, name=None):启动一个新线程并执行指定的函数。

8. threading.stop_main_thread():强制停止主线程。

9. threading.Timer(delay, function, args=(), kwargs={}, name=None):在指定的延迟时间后执行指定的函数。

10. threading.Lock():创建一个锁对象,用于同步线程。

11. threading.RLock():创建一个可重入锁对象,用于同步线程。

12. threading.Semaphore(value=1):创建一个信号量对象,用于控制同时访问某个资源的线程数量。

13. threading.BoundedSemaphore(value=1):创建一个有界信号量对象,用于控制同时访问某个资源的线程数量。

14. threading.Condition(lock=None):创建一个条件变量对象,用于线程间的同步。

 

以下是一些示例代码:

 

```python

import threading

import time

 

def print_numbers():

    for i in range(10):

        print(i)

        time.sleep(1)

 

def print_letters():

    for letter in 'abcdefghij':

        print(letter)

        time.sleep(1.5)

 

# 创建两个线程

t1 = threading.Thread(target=print_numbers)

t2 = threading.Thread(target=print_letters)

 

# 启动线程

t1.start()

t2.start()

 

# 等待线程结束

t1.join()

t2.join()

```

 

以上代码展示了如何使用threading模块创建和启动线程,以及如何等待线程结束。更多关于threading模块的信息,可以参考官方文档:https://docs.python.org/3/library/threading.html