ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

进程和线程对比

2022-06-11 12:33:58  阅读:159  来源: 互联网

标签:__ pid t1 线程 time 进程 对比


1,开进程的开销远远大于开线程

import time
from threading import Thread
from multiprocessing import Process

def piao(name):
    print('%s piaoing'%name)
    # time.sleep(1)
    print('%s piaoing end' % name)

if __name__=='__main__':
    start = time.time()
    p1 = Process(target=piao, args=('egon',))  # 创建了一个线程对象t1
    p1.start()  # 进程程花费时间:cost time 0.010999917984008789

    # t1=Thread(target=piao,args=('egon',))  #创建了一个线程对象t1
    # t1.start()  # 线程花费时间:cost time 0.0009999275207519531
    print('cost time %s'%(time.time()-start))

输出:

cost time 0.010999917984008789
egon piaoing
egon piaoing end

2,同一进程内的多个线程共享该进程的地址空间,不同进程彼此独立内存空间

from threading import Thread
from multiprocessing import Process
import time
n = 100
def task():
    global n
    n = 1
    print('子进程',n)

if __name__=='__main__':
    # p1 = Process(target=task,)  # 创建了一个进程对象t1
    # p1.start()
    '''
    进程输出:
    子进程 1
    主线程, 100
    ''''

    t1 = Thread(target=task,)  #创建了一个线程对象t1
    t1.start()  
    '''
    线程输出:
    子进程 1
    主线程, 1
    ''''
    time.sleep(1)
    print('主线程,',n)

3,瞅一瞅pid

from threading import Thread
from multiprocessing import Process,current_process
import os
def task():
    print('子进程或线程的pid::',current_process().pid)
    print('子进程或线程的pid>>',os.getpid(),'主进程',os.getppid())

if __name__=='__main__':
    p1 = Process(target=task,)  # 创建了一个进程对象t1
    p1.start()
    print('主进程pid=%s, OS得出的pid=%s, ppid=%s' % (current_process().pid, os.getpid(), os.getppid()))
    '''输出:
        主进程pid=7924, OS得出的pid=7924, ppid=6996
        子进程或线程的pid:: 6892
        子进程或线程的pid>> 6892 主进程 7924
    '''
    # t1=Thread(target=task,)  #创建了一个线程对象t1
    # t1.start()
    # print('主线程pid=%s, OS得出的pid=%s, ppid=%s'%(current_process().pid,os.getpid(),os.getppid()))
    '''输出:
        子进程或线程的pid:: 7712
        子进程或线程的pid>> 7712 主进程 6996
        主线程pid=7712, OS得出的pid=7712, ppid=6996
        '''

标签:__,pid,t1,线程,time,进程,对比
来源: https://www.cnblogs.com/heris/p/16365605.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有