python学习进阶threading

Owen Jia 2022年12月18日 202次浏览

已经不愿意止步与python的简单语法:if for while print import time sys

安装一个python软件,创建一个*.py文本,直接python *.py已经没有任何难度,剩下的就是熟悉内置各种包,但是这个需要项目或者场景的支持才能够深入掌握包。目前,大致记住有这么一个lib即可,自带的挺丰富。

近期把python自带的doc打开,发现新天地。和jdk安装包一个思路,python3的安装包自带该版本全部文档,这东西和研究jdk包是一样的,经常回顾就能建立知识体系。掌握一门语言,翻包,是基本能力,还有翻源码习惯。

进阶学,发现python的thread模块居然这么全面。像:线程本地数据、队列、锁、并发、事件,和java很类似(虽然没有细看每个模块的定义,但既然是编程语言,详细和java之类不会反着来)。

新建一个thread:
python:threading.Thread(),构造方法支持几个参数

class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)¶

相对于java的new Thread or new Running,这个参数量真的很少了。参数里面target就是thread要执行的模块,可以引入一个function,函数式编程这里提醒出便捷,def 一个function直接作为参数传入thread,真心方便。

另外python还支持Lock和RLock,特别是RLock全程 reentrant lock,可重入锁,完全和java一致。

在这里python的class居然支持重写method,这点厉害了(学到这里,理解了python为何这么火,全球第一火)。在编程语言创立圈子里,应该也有“标准化委员会”或者“非一致委员会”,像JRE标准、SQL标准等等,编程语言里面逻辑、数据类型、class、function等等定义,都有着基本标准(虽不是强一致,但大家都会遵守)。所以,才有掌握一门语言,其他语言也易学。

高阶python里,还有multiprocessing 之Pool Process,有 sched(调度),完全把一门语言搞到精通、架构级别,考自学基本知识是很难的,得有大量项目历练。

学海无涯苦作舟,沧海一叶!!!