码迷,mamicode.com
首页 > 编程语言 > 详细

Python_线程、线程效率测试、数据隔离测试、主线程和子线程

时间:2018-06-15 19:07:38      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:概念   数据隔离   成功   子进程   ssi   事件处理   进程状态   tip   最小   

0、进程中的概念

  三状态:就绪、运行、阻塞

    就绪(Ready):当进程已分配到除CPU以外的所有必要资源,只要获得处理机便可立即执行,这时的进程状态成为就绪状态.

    执行/运行(Running)状态:当进程已获得处理机,其程序正在处理机上执行,此时的进程状态成为执行状态.

    阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态.引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等.

 

  同步:一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。

 

  异步:不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要完成了整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖他的任务无法确定,所以是不可靠的任务序列。

    

   进程是计算机中最小的资源分配单位。

 

  基础的进行开启:    

技术分享图片
 1 import time
 2 from multiprocessing import Process
 3 
 4 def f(name):
 5     print(hello, name)
 6     print(我是子进程)
 7 
 8 if __name__ == __main__:
 9     p = Process(target=f, args=(bob,))
10     p.start()
11     time.sleep(1)
12     print(执行主进程了)
子进程的开启
技术分享图片
1 D:\Python36\python.exe E:/Python/草稿纸.py
2 hello bob
3 我是子进程
4 执行主进程了
5 
6 Process finished with exit code 0
结果

 

 

  锁 —— 互斥锁

 

  信号量 —— 锁 + 计数器

 

  事件 —— Python线程的事件用于主线程控制其他线程的执行,事件主要提供了三个方法set、wait、clear。

    事件处理的机制:全局定义了一个‘Flag’,如果‘Flag’值为False,那么当程序event.wait方法时就会阻塞,如果‘Flag‘值为True,那么event,wait方法便不再阻塞.

    clear:将‘Flag‘设置为False.

    set:将‘Flag‘设置为True.

 

 

1、线程

 

 

 

2、线程效率测试

 

 

 

 

 

3、数据隔离测试

 

 

 

 

 

 

 

 

4、主线程和子线程

 

Python_线程、线程效率测试、数据隔离测试、主线程和子线程

标签:概念   数据隔离   成功   子进程   ssi   事件处理   进程状态   tip   最小   

原文地址:https://www.cnblogs.com/ZN-225/p/9188523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!