#import time
import random
from threading import Thread
from multiprocessing import Process,current_process
import os
#1、开进程的开销远大于开进程
def piao(name):
print('%s piaoing' %name)
time.sleep(random.randrange(1,5))
print('%s piao end' %name)
if __name__ == '__main__':
#进程
p1 = Process(target=piao, args=('egon',))
#开启进程需要开启内存空间
p1.start()
#t1 = Thread(target=piao,args=('egon',))
#t1.start()
##资源角度去看是主进程
print('主线程')
#2、同一进程内的多个线程共享该进程的地址空间
#import time
import random
from threading import Thread
from multiprocessing import Process
#主进程有一个全局变量是n
n =100
def task():
global n
n =0
if __name__ == '__main__':
#进程
#p1 = Process(target=task,)
#子进程会拷贝一个主进程地址空间 ,子进程也会有一个n=100,开启子进程改的是子的进程里面的值, 主进程还是100 ,彼此是隔离的
#p1.start()
#p1.join()
t1 = Thread(target=task,)
t1.start()
##资源角度去看是主进程
print('主线程',n)
#import time
import random
from threading import Thread
from multiprocessing import Process,current_process
import os
def task():
print('子进程PID: %s 父进程的PID: %s' %(os.getpid(),os.getppid()))
if __name__ == '__main__':
#进程
p1 = Process(target=task,)
#子进程会拷贝一个主进程地址空间 ,子进程也会有一个n=100,开启子进程改的是子的进程里面的值, 主进程还是100 ,彼此是隔离的
p1.start()
#p1.join()
#t1 = Thread(target=task,)
#t1.start()
##资源角度去看是主进程
print('主线程',os.getpid())
def task():
print('子进程PID: %s ' %(os.getpid()))
if __name__ == '__main__':
#进程
#p1 = Process(target=task,)
#子进程会拷贝一个主进程地址空间 ,子进程也会有一个n=100,开启子进程改的是子的进程里面的值, 主进程还是100 ,彼此是隔离的
#p1.start()
#p1.join()
#线程
t1 = Thread(target=task,)
t1.start()
##资源角度去看是主进程
print('主线程',os.getpid())