python 启动线程池

from concurrent.futures import ThreadPoolExecutor
from threading import current_thread
import time
tp =ThreadPoolExecutor(4)#启动线程个数
def c(i):
    print(current_thread().ident)#获取线程id
    time.sleep(1)
    print(i)
for i in range(20):
    ret =tp.submit(c,i)#调用线程池

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的多线程是实现并发执行的一种方式,它允许程序同时运行多个任务,这些任务在单个进程中共享相同的内存空间,但使用各自的线程多线程有助于提高程序的响应速度和资源利用率,尤其是在I/O密集型任务中,如网络请求、文件操作等,因为线程可以独立执行,而不会阻塞其他任务。 在Python中,实现多线程通常有两种方法: 1. **内置`threading`模块**:这是最直接的方法,使用`Thread`类创建新线程,然后通过`start()`方法启动。你需要重写`run()`方法(或`__init__`方法中定义的`target`),在这个方法里编写线程要执行的代码。 ```python import threading def worker(): # 线程要执行的任务 print("Worker thread is running") # 创建并启动线程 thread = threading.Thread(target=worker) thread.start() ``` 2. **`concurrent.futures`模块**:这是一个更高级的库,提供了更简洁的接口,包括`ThreadPoolExecutor`(基于线程池)和`ProcessPoolExecutor`(基于进程池)。这使得管理线程更加方便,且提供了异步执行选项。 ```python from concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor() as executor: future = executor.submit(worker) # 提交任务 future.result() # 等待任务完成 ``` 使用多线程需要注意避免全局变量竞争和死锁等问题,同时Python的全局解释器锁(GIL)可能限制了真正的并行计算,但对于IO密集型任务,多线程仍然是有效的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值