进程与线程区别

#!/usr/bin/env python
# encoding: utf-8  
# Date: 2018/6/18


# 1、开进程的开销远大于开线程的
# import time
# from threading import Thread
# from multiprocessing import Process
#
#
# def task(name):
#     print('%s is running ' % name)
#     time.sleep(2)
#     print('%s is done' % name)
#
#
# if __name__ == '__main__':
#     # t1 = Thread(target=task, args=('线程1', ))
#     # t1.start()
#     p1 = Process(target=task, args=('线程1',))
#     p1.start()
#     print('主线程')

# 2、同一个进程内的线程共享该进程的地址空间
# from threading import Thread
# from multiprocessing import Process
# n = 100
#
#
# def task():
#     global n
#     n = 0
#
#
# if __name__ == '__main__':
#     t1 = Thread(target=task, )
#     t1.start()
#     t1.join()  # 主 0
#     # p1 = Process(target=task, )
#     # p1.start()
#     # p1.join()
#     print('主', n)  # 主 100

# 3、瞅一眼pid
# from multiprocessing import Process, current_process
# import os
#
#
# def task():
#     # print(current_process().pid)
#     print('子进程pid:%s  父进程pid: %s' % (os.getpid(), os.getppid()))
#
#
# if __name__ == '__main__':
#     p1 = Process(target=task, )
#     p1.start()
#     # print('主', current_process().pid)
#     print('主', os.getpid())  # 作用同上一行代码

from threading import Thread
import os


def task():
    print('子线程pid:%s ' % (os.getpid()))  # 子线程pid:37352


if __name__ == '__main__':
    p1 = Thread(target=task, )
    p1.start()
    print('主', os.getpid())  # 主 37352



猜你喜欢

转载自www.cnblogs.com/fmgao-technology/p/9194503.html
今日推荐