进程线程这一大章的内容终于全部懂了
Topic source“3、进程间的通信”得到的输出是
子进程已收到数据...
有内鬼,终止交易!
主进程准备发送数据...
为啥“有内鬼,终止交易!”在“主进程准备发送数据...”之前呢?明明代码是先print再put。
我运行的时候↓
子主进程准备发送数据...
进程已收到数据...
有内鬼,终止交易!
你多运行几次估计会有正常顺序输出的时候。。
或者在 def foo(aa): 一行下面加一句 time.sleep(0.1) 就绝对正常了。。
是我代码太烂了。。。
电脑配置不同有所差异很正常。
因为print语句执行的时间太长了。。。
Python中执行print语句的时间和计算2**3000所用的时间居然是差不多的!!
为了加快python程序运行,在print语句未执行完毕的时候其实就已经开始执行下一句了
说简单点就是说我代码不严谨。。
if __name__ == '__main__':
知乎上的回答:编写私有化部分 ,这句代码以上的部分,可以被其它的调用,以下的部分只有这个文件自己可以看见,如果文件被调用了,其他人是无法看见私有化部分的* 。*
也就是说你自己运行该模块的时候 这句话是执行的 因为自己运行时__name__就是__main__,而当别人调用你这个模块时,以下代码会被忽略,此时的__name__是模块名
为什么猫不吃鱼
最开始看这一节的时候真的是一脸蒙蔽。。。估计很多人开始也是这样。。
但现在突然觉得挺简单的,回头来写点自己的理解:
**保证在座的各位都能看懂的版本!**↓↓
先说两句:什么是进程?有什么用?——ok,那我问你,你能一手画圆一手画方吗?——我猜不能。但计算机就不一样了,一边绘制正方体一边绘制球体都是小case(屏幕上自动绘制图形),这是因为计算机启动了另一个"大脑"来处理另一个任务,即两个“大脑”分别同时画两个图形 效率X2!我们之前的写程序都是计算机一个“大脑”在工作!ok,那怎么启动计算机其他的大脑呢?——启动另一个进程就可以了!
1、创建进程:(直接复制粘贴运行对照输出。。)
#输出结果是两个进程同时且连续打印0、1
2、Pool:(直接复制粘贴运行对照输出。。)
#主进程(父进程)全程干了什么?创建进程池、启动子进程、关闭进程池、等待子进程完毕、打印最后一行
3、进程间的通信::(直接复制粘贴运行对照输出。。)
#这种方法可以实现任意进程间的通信,这里写的是主、子进程间的通信
OK!哈哈 睡觉觉(¦3[▓▓] 晚安