python threading线程示例
时间: 2023-05-11 14:07:24 浏览: 182
以下是一个简单的 Python threading 线程示例:
```python
import threading
def print_numbers():
for i in range(1, 11):
print(i)
def print_letters():
for letter in 'abcdefghij':
print(letter)
t1 = threading.Thread(target=print_numbers)
t2 = threading.Thread(target=print_letters)
t1.start()
t2.start()
t1.join()
t2.join()
print("Done!")
```
这个示例创建了两个线程,一个打印数字,一个打印字母。通过使用 `threading.Thread` 类创建线程对象,并将要执行的函数作为参数传递给 `target` 参数。然后,通过调用 `start()` 方法启动线程。最后,通过调用 `join()` 方法等待线程完成。
相关问题
python threading线程运行时间
Python的线程(Thread)模块没有提供直接获取线程运行时间的方法,但是可以通过记录线程开始和结束时间来计算线程运行时间。
可以使用time模块的time()函数来获取当前时间戳,然后在线程开始和结束时分别记录时间戳。线程运行时间就等于结束时间戳减去开始时间戳。
下面是一个示例代码,演示如何计算线程运行时间:
```python
import threading
import time
def worker():
start_time = time.time()
# do some work...
time.sleep(2)
end_time = time.time()
print("Thread running time:", end_time - start_time)
t = threading.Thread(target=worker)
t.start()
t.join()
```
在这个示例中,worker()函数模拟了一个耗时2秒的任务,然后计算线程运行时间并输出结果。运行结果类似于以下的输出:
```
Thread running time: 2.00254487991333
```
注意,线程运行时间受到系统调度和线程阻塞等因素的影响,因此结果可能会有一定的误差。
python threading 线程锁 使用方法
Python中提供了一些线程同步机制来避免多个线程同时修改共享数据时引起的数据不一致问题,其中最常用的就是线程锁。
线程锁的基本使用方法如下:
1. 创建锁对象:lock = threading.Lock()
2. 获取锁:lock.acquire()
3. 释放锁:lock.release()
在多个线程中对共享资源进行访问时,可以在需要对共享资源进行操作的代码段前后使用锁,以确保同一时间只有一个线程可以访问这个资源,示例代码如下:
```python
import threading
# 共享资源
count = 0
# 创建锁对象
lock = threading.Lock()
# 线程函数
def add_one():
global count
# 获取锁
lock.acquire()
# 对共享资源进行操作
count += 1
# 释放锁
lock.release()
# 创建多个线程
threads = []
for i in range(10):
t = threading.Thread(target=add_one)
threads.append(t)
# 启动线程
for t in threads:
t.start()
# 等待所有线程执行完毕
for t in threads:
t.join()
# 输出最终结果
print(count)
```
在上面的示例代码中,通过创建一个锁对象,并在对共享资源进行操作的代码段前后获取和释放锁来避免了多个线程同时修改共享资源带来的问题。
阅读全文