最近在写虚拟oj的爬虫部分,颇有收获,在此总结一发
python 多线程写法:
首先包含模块threading
import threading as th;
定义一个run函数,表示每个线程跑的东西
<pre name="code" class="python">t = th.Thread(target = run , args = (proid,));#args是个元组,表示给run传递的参数
t.start()
表示开始跑
再有个守护线程,他的概念是主线程结束了,其他的线程也会结束
<pre name="code" class="python">t.setDaemon(True);
这样就可以在run函数里面写死循环,然后获取某资源,有个限制,一定要每个线程拥有阻塞的条件,否则很吃系统资源
有个非常好用的东西叫queue模块,这个队列默认队列为空的情况让申请该队列资源的线程阻塞
</pre><pre name="code" class="python">python每个赋值其实都是C++的引用,即使是函数传递参数,想实现拷贝构造就需要一个模块叫copy
<pre name="code" class="python">import copy
a = newClass();
b = copy.deepcopy(a);
拷贝还有浅拷贝和深拷贝
</pre><pre name="code" class="python">获取页面信息插入数据库前需要一次转义,因为是用字符串方方法构造一个sql语句会出现引号套引号的现象
所以数据需要在每个\前面加一个\ 每个‘ 前面加一个 \
</pre><pre name="code" class="python"><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">先总结这么多。其他的以后在写</span>