python(进程)

2016-09-13  本文已影响36人  OldSix1987

进程


(1)由于Python当初全局解释器锁的设计,导致了Python的使用线程的场合好像比较固定。
(2)大部分使用比较多的是进程,但是开销上进程肯定更大。但是针对日常的一些脚本的使用,简单的爬虫来说,都OK了。

(1)主要方法


from multiprocessing import Process, Pool, cpu_count
import os

# 获取进程pid:
os.getpid()

# 开始、结束、等待
p.start()
p.close()
p.join()  # 等待子进程结束之后再继续执行。


(2)简单Demo


# 调用子进程
p = Process(target=func_name, args=('arg1', 'arg2'...)) # 这里面的参数指的是传入的func中会用到的参数
p.start()
p.join()


# 进程池
p = Pool(cpu_count())

for i in range(5):
    p.apply_async(long_time_task, args(i, ))

p.close()
p.join()

(3)子进程



线程的进程之间的最大区别:


多线程和多进程最大的不同在于:
 
(1)多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响,
(2)而多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,
因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。

上一篇下一篇

猜你喜欢

热点阅读