当前位置: 首页 > wzjs >正文

网站建设费计入销售费用的子目旺道seo优化软件

网站建设费计入销售费用的子目,旺道seo优化软件,杭州互联网网站定制公司,wordpress 开发 主题授权threading多线程同时运行程序 目录 threading多线程同时运行程序1 threading1.1 概念1.2 主要组件1.3 注意事项1.4 基本语法 2 代码测试2.1 分别开启线程2.2 线程连续启动 1 threading 1.1 概念 Python 的 threading 库用于实现多线程编程,允许程序在同一时间执行多…

threading多线程同时运行程序

目录

  • threading多线程同时运行程序
    • 1 threading
      • 1.1 概念
      • 1.2 主要组件
      • 1.3 注意事项
      • 1.4 基本语法
    • 2 代码测试
      • 2.1 分别开启线程
      • 2.2 线程连续启动

1 threading


1.1 概念

Python 的 threading 库用于实现多线程编程,允许程序在同一时间执行多个任务。threading 库提供了丰富的多线程编程工具,适合处理 I/O 密集型任务或需要并发执行的场景对于 CPU 密集型任务,多线程可能不会提升性能,建议使用 multiprocessing 模块,以避免 GIL(全局解释器锁)的限制。

1.2 主要组件

  • Thread 类:用于创建和管理线程。通过继承 Thread 类或直接实例化并传入目标函数来创建线程。
  • Lock 类:提供线程同步机制,防止多个线程同时访问共享资源。
  • RLock 类:可重入锁,允许同一线程多次获取锁。
  • Condition 类:用于线程间的条件同步,允许线程等待特定条件满足。
  • Semaphore 类:限制同时访问共享资源的线程数量。
  • Event 类:用于线程间的事件通知,一个线程可以等待事件,另一个线程可以触发事件。
  • Timer 类:用于在指定时间后执行函数。
  • Barrier 类:用于同步多个线程,确保它们在某个点同时继续执行。

1.3 注意事项

  • GIL(全局解释器锁): Python 的 GIL 限制了同一时间只有一个线程执行 Python 字节码,因此在 CPU 密集型任务中,多线程可能不会提升性能
  • 线程安全: 多线程编程需注意线程安全问题,避免竞争条件。
  • 调试: 多线程程序调试较为复杂,需使用适当的工具和方法。

1.4 基本语法

  • thread = threading.Thread(target=worker,args=(‘work1’,))创建线程
    • target=worker,指定线程worker,worker为def的函数名
    • args=(‘work1’,),worker函数所用到的参数,无可不写
  • thread .start()启动线程
  • thread .join()等待线程完成

2 代码测试


2.1 分别开启线程

每次线程的开启,线程和主线顺序可能都不同

代码展示:

import threading
def worker():print('开始')for i in range(5):print(f'正在worker:{i}')print('完成')
thread = threading.Thread(target=worker)
thread.start()
print('开始主线')def worker1(n):print(f'{n}开始')for i in range(5):print(f'{n}正在{i}')print('完成')thread1 = threading.Thread(target=worker1,args=('work1',))
thread1.start()
print('继续主线')

运行结果:
在这里插入图片描述

在这里插入图片描述

2.2 线程连续启动

可以明显看到时间的停顿,顺序不同。

代码展示:

import threading
import time
def run(n):print('task',n)time.sleep(1)print('2s')time.sleep(1)print('1s')time.sleep(1)print('0s')time.sleep(1)def run2(t):time.sleep(t)print(f'wait {t}s')if __name__ =='__main__':t1 = threading.Thread(target=run,args=('t1',))t2 = threading.Thread(target=run, args=('t1',))t1.start()t2.start()t3 = threading.Thread(target=run2, args=(5,))t4 = threading.Thread(target=run2, args=(8,))t3.start()time.sleep(10)print('开始计时')t4.start()

运行结果:
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/wzjs/149538.html

相关文章:

  • 电子商务网站建设 臧良运 好不好舆情监测系统排名
  • 高端商务网站建设短视频seo优化排名
  • 动态网站设计网站如何优化
  • 贵阳美丽乡村建设网站做外贸推广
  • 上海公司注册名字查询网搜索引擎seo关键词优化方法
  • 肥西县市建设局网站专业网站推广软件
  • 网站建设模型seo推广技巧
  • 端网站建设适合交换友情链接的是
  • 中国建设银行手机网站下载营销网站建设选择原则
  • 百度怎样建设网站百度一下网页版搜索引擎
  • 做网站的素材都在哪里下载北京网络排名优化
  • 可以直接打开的网页苏州关键词优化seo
  • wordpress阅读更改网站排名seo
  • 兰州网络优化的搜索引擎优化
  • 企业网站建设哪家便宜微信小程序开发教程
  • 如何加强政府门户网站建设方案武汉百度推广代运营
  • 厦门推广平台较好的seo外包方案
  • 兰州网站建设多少钱网络舆情
  • 网站开发 语言net网络推广的主要工作内容
  • 网站排名怎么做 知乎优化服务是什么意思
  • 免费申请网站域名兔子bt樱桃搜索磁力天堂
  • 如何对网站进行管理电脑网页制作
  • 广东省建筑工程信息网百度seo关键词排名优化教程
  • 什么网站做批发最便宜数据分析平台
  • 免费软件下载网站百度首页广告
  • 网站功能描述与分析公司百度推广一年多少钱
  • 南头外贸网站建设南宁seo内部优化
  • 广州高端网站定制公司哪家好宁德seo
  • 网站建设建站网易互客成都seo外包
  • 佛山建设公司网站中国互联网电视app下载安装