python进程与线程_python在一个进程下开启多线程与一个进程下开启多进程区别

from threading import Thread

from multiprocessing import Process

import os

def work():

print('hello')

if __name__ == '__main__':

#在主进程下开启线程

t=Thread(target=work)

t.start()

print('主线程/主进程')

'''

打印结果:

hello

主线程/主进程

'''

#在主进程下开启子进程

t=Process(target=work)

t.start()

print('主线程/主进程')

'''

打印结果:

主线程/主进程

hello

'''

1、开启速度(线程快)

from threading import Thread

from multiprocessing import Process

import os

def work():

print('hello',os.getpid())

if __name__ == '__main__':

#part1:在主进程下开启多个线程,每个线程都跟主进程的pid一样

t1=Thread(target=work)

t2=Thread(target=work)

t1.start()

t2.start()

print('主线程/主进程pid',os.getpid())

#part2:开多个进程,每个进程都有不同的pid

p1=Process(target=work)

p2=Process(target=work)

p1.start()

p2.start()

print('主线程/主进程pid',os.getpid())

线程pid相同,进程则不同

from threading import Thread

from multiprocessing import Process

import os

def work():

global n

n=0

print('%s 子进程'%(n))

if __name__ == '__main__':

# n=100

# p=Process(target=work)

# p.start()

# p.join()

# print('主',n) #毫无疑问子进程p已经将自己的全局的n改成了0,但改的仅仅是它自己的,查看父进程的n仍然为100

n=100

t=Thread(target=work)

t.start()

t.join()

print('主',n) #查看结果为0,因为同一进程内的线程之间共享进程内的数据

线程共享数据,进程彼此隔离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值