-
在Unix/Linux下,可以使用fork()调用实现多进程。
-
要实现跨平台的多进程,可以使用multiprocessing模块。
-
进程间通信是通过Queue、Pipes等实现的。
-
多线程编程,模型复杂,容易发生冲突,必须用锁加以隔离,同时,又要小心死锁的发生。
-
Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核。
-
ThreadLocal最常用的地方就是为每个线程绑定一个数据库连接,HTTP请求,用户身份信息等,这样一个线程的所有调用到的处理函数都可以非常方便地访问这些资源。
-
一个ThreadLocal变量虽然是全局变量,但每个线程都只能读写自己线程的独立副本,互不干扰。ThreadLocal解决了参数在一个线程中各个函数之间互相传递的问题。
-
如果用户输入了一组标签,下次记得用正则表达式来把不规范的输入转化成正确的数组。
>>> re.split(r'[s\,;]+', 'a,b;; c d')
['a', 'b', 'c', 'd']
使用正则表达式分割字符串效果比较好。
-
使用hmac和普通hash算法非常类似。hmac输出的长度和原始哈希算法的长度一致。需要注意传入的key和message都是bytes类型,str类型需要首先编码为bytes。
-
操作XML有两种方法:DOM和SAX。DOM会把整个XML读入内存,解析为树,因此占用内存大,解析慢,优点是可以任意遍历树的节点。SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。