学习Python的多线程(Multi-threading),至少应该要有进程与线程的基本概念,可以看我转载的一篇文章:http://blog.csdn.net/dongfei2033/article/details/77871710。
1
2
3
4
5
6
7
8
9
|
即GLI是以CPU核心为单位来控制全局锁,所以是不能跨不同的CPU(核心 )的
GLI可以保证同一个进程中,某一个线程的共享数据在某一时刻只能同时被另外一个线程修改(使用),
而不能同时被多个线程修改(使用),如果去掉GLI,则需要自己为线程加锁,这样之后,性能比原来还要差。
当然,难道就不能充分利用多核CPU或多个CPU了?
做成多进程就可以了,不同的进程运行在不同的CPU(核心)上,也可以实现并发,
只是这样的话就会比较浪费内存空间,考虑同时运行
10
个QQ程序的情况,
假如
1
个QQ占用500M的内存空间,则
10
个QQ就要占用5G的内存空间了。但如果是多线程的话,
可能
10
个QQ还是共享着这500M的内存空间。还有一个缺点就是,多进程间的数据直接访问可能
会比较麻烦,但其实也是可以实现的,比如chrome浏览器就是用多进程实现的。
|
1
2
3
4
5
6
7
8
9
10
|
import
threading #Python多线程模块
import
time
def run(num):
print
'Hi, I am thread %s..lalala'
% num
time.sleep(
1
)
for
i
in
|