「python 进阶」 进程和线程

学Python,用RPA

艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用

www.i-search.com.cn/index.html?from=line1

Linux:
#!/usr/bin/env Python3

-- coding: utf-8 --

@Software: PyCharm

@virtualenv:workon

@contact: 1040691703@qq.com

@Desc:Code descripton

author = ‘未昔/AngelFate’
date = ‘2020/5/31 10:12’

import os

pid = os.fork() #这里将会创建一个子进程,返回值会是子进程PID值。

print(‘父子进程都会输出。’) #这里没有判断语句,将会运行两次,一次是父进程,一次是子进程。
if pid > 0: #判断,父进程的返回值会大于0。
print(‘子进程的PID是%d,父进程的PID是%d’%(os.getpid(),os.getppid())) #getpid的获取当前进程的pid,如果子进程getpid的时候,会得到子进程的值,再子进程使用getppid的时候能够获取到父进程的pid。
else: #子进程的返回值则会永远是0
print(‘父进程的PID是%d’%os.getpid()) #当父进程使用getpid的时候获得的是父进程的pid。

注意: 进程值 PID 是不能重复的,类似于端口。系统会为每个进程会分配不同的 PID 进行区分不同的软件进程。并且父子进程会独立运行,互不干扰。而且父子进程的调用需要系统来调度,没有固定性。

WINDOWS:
#!/usr/bin/env Python3

-- coding: utf-8 --

@Software: PyCharm

@virtualenv:workon

@contact: 1040691703@qq.com

@Desc:Code descripton

author = ‘未昔/AngelFate’
date = ‘2020/5/31 10:20’

from multiprocessing import Process
import os

def run_proc(name):
print(‘运行子进程%s(%s)…’%(name,os.getpid()))

if name == ‘main’:
print(‘父进程%s’%os.getpid())
p = Process(target=run_proc,args=(‘test’,))
print(‘子进程将开始’)
p.start()
p.join()
print(‘子进程结束’)
父进程10496
子进程将开始
运行子进程test(15560)…
子进程结束

Process finished with exit code 0

你可能感兴趣的:(RPA,python基础)