02-多任务编程
2019-04-25 06:54:30来源:博客园 阅读 ()
1 import multiprocessing 2 import time 3 4 5 # 跳舞任务 6 def dance(): 7 for i in range(5): 8 print("跳舞中...") 9 time.sleep(1) 10 11 # 唱歌任务 12 def sing(): 13 for i in range(5): 14 print("唱歌中...") 15 time.sleep(1) 16 17 if __name__ == '__main__': 18 # 创建跳舞的子进程 19 # group: 表示进程组,目前只能使用None 20 # target: 表示执行的目标任务名(函数名、方法名) 21 # name: 进程名称, 默认是Process-1, ..... 22 dance_process = multiprocessing.Process(target=dance, name="myprocess1") 23 sing_process = multiprocessing.Process(target=sing) 24 25 # 启动子进程执行对应的任务 26 dance_process.start() 27 sing_process.start()
1 2 import multiprocessing 3 import time 4 5 # 定义进程所需要执行的任务 6 def task(): 7 for i in range(10): 8 print("任务执行中...") 9 time.sleep(0.2) 10 11 if __name__ == '__main__': 12 # 创建子进程 13 sub_process = multiprocessing.Process(target=task) 14 # 设置守护主进程,主进程退出子进程直接销毁,子进程的生命周期依赖与主进程 15 # sub_process.daemon = True 16 sub_process.start() 17 18 time.sleep(0.5) 19 print("over") 20 # 让子进程销毁 21 sub_process.terminate() 22 exit() 23
1 import threading 2 import time 3 4 def task(): 5 time.sleep(1) 6 print("当前线程:", threading.current_thread().name) 7 8 if __name__ == '__main__': 9 for _ in range(5): 10 sub_thread = threading.Thread(target=task) 11 sub_thread.start()
# 创建锁 mutex = threading.Lock() # 上锁 mutex.acquire() ... 这里编写代码能保证同一时刻只能有一个线程去操作, 对共享数据进行锁定... # 释放锁 mutex.release()
1 import threading 2 3 4 # 定义全局变量 5 g_num = 0 6 7 # 创建全局互斥锁 8 lock = threading.Lock() 9 10 # 循环一次给全局变量加1 11 def sum_num1(): 12 # 上锁 13 lock.acquire() 14 for i in range(1000000): 15 global g_num 16 g_num += 1 17 18 print("sum1:", g_num) 19 # 释放锁 20 lock.release() 21 22 # 循环一次给全局变量加1 23 def sum_num2(): 24 # 上锁 25 lock.acquire() 26 for i in range(1000000): 27 global g_num 28 g_num += 1 29 print("sum2:", g_num) 30 # 释放锁 31 lock.release() 32 33 if __name__ == '__main__': 34 # 创建两个线程 35 first_thread = threading.Thread(target=sum_num1) 36 second_thread = threading.Thread(target=sum_num2) 37 # 启动线程 38 first_thread.start() 39 second_thread.start() 40
原文链接:https://www.cnblogs.com/xiaoxuanchuang/p/10752475.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python之OS模块
- python3基础之“术语表(2)” 2019-08-13
- 网络编程相关知识点 2019-08-13
- python 之 并发编程(线程理论,开启线程的两种方式,进程 2019-07-24
- 编程小白的第一本python入门书(高清版)PDF下载 2019-07-24
- python 之 并发编程(生产者消费者模型、守护进程的应用) 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash