python(进程)

进程


(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)而多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,
因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容