欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

定时器 线程池\进程池

发布时间:2025/6/17 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 定时器 线程池\进程池 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

定时器

  • 可以指定线程多久后启动,(并且他是一个异步的线程,也就是并发)
from threading import Timer """ 这个相当于开启了一个可以定义时间的线程,不需要导入Thread模块了,Timer模块可以直接创建一个线程 """ def foo(name):print(f"{name}定的时间到了,开启啦")t = Timer(3,foo,('xc',)) t.start()

线程池\进程池

  • 线程池\进程池就是控制线程\进程的数据量,并且不会回收,会放在池里面重复使用这几个线程\进程.
  • 线程池\进程池不同于信号量,这是两个东西,池是控制线程的总数量,以自己控制的数量去操作很多条任务,信号量是控制线程的并发的运行的数量,不会控制线程的总数量

什么时候使用池

  • 单个任务处理时间短
  • 所要处理的这种任务数量多

使用池的好处

  • 不用重复的去创建回收线程\进程,减少了系统资源的开销以及时间上的开销
  • 如果不使用线程池,就会因为制造了大量线程消耗内存,和线程太多,造成cpu过渡切换
  • 总的来说就是节约系统资源,以及重复造线程\进程的开销,信号量是没有这个好处的,他只是让同一段代码,多少个进程可以去操作他.
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor # 导入一个线程池模块和一个进程池模块,这两个模块的使用方法是一样的 import timeresult_lis = [] def foo(user,pwd):time.sleep(0.3)print(f"你的账号为{user},你的密码为{pwd}")return pwd * 10 def back_main(x):result_lis.append(x.result())tpool = ThreadPoolExecutor(4) for i in range(12):res = tpool.submit(foo,'xc',i).add_done_callback(back_main) # 传值不是以元组的形式传值# print(res.result()) tpool.shutdown() print("结束") print(result_lis)

转载于:https://www.cnblogs.com/xiongchao0823/p/11552337.html

总结

以上是生活随笔为你收集整理的定时器 线程池\进程池的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。