進程 子進程
阿新 • • 發佈:2018-06-12
取數據 輪轉 網絡操作 關於 int sin 時間片 效率 負責
#!/use/bin/python
# -*- conding:utf-8 -*-
# 並發編程?
# 一個程序可以在同一時間做很多事情
# 解決程序中的IO操作影響程序效率的問題
#
# 並發編程為什麽重要
#
# 操作系統
# 並發這件事
# 輸入輸出 :大部分時間逗不會占用cpu,且會降低你程序的效率
# 如input/print 文件讀數據,取數據
# 網絡操作: 從網絡上獲取數據 爬蟲 發送請求 寫讀 從網絡上獲取數據
# 單進程 -->多道系統-->分時進程 實時系統(分時:就是時間片輪轉算法)
#
# 進程:運行中的程序
# 什麽是程序:如微信,qq pycharm
# 操作系統 只負責管理調度進程
# 進程是操作系統中資源分配的最小單位
# 每一個運行中的程序都需要有自己的內存,資源
# 都分配給進程,記錄執行的狀態,管理自己的內存資源
# 在python中,每一個運行中的程序 都是一個進程
# 一個進程,就能做一件事
# 如果有多個進程 就可以做多件事兒
# 如果用pyth來開啟一個進程
# import os
# import time
# print(os.getpid())
# time.sleep(1000)
# Process 進程
# multi 多遠的
# import os
# import time
# from multiprocessing import Process
# def func(num):
# print(num,os.getpid())
# time.sleep(0.5)
# print(num, os.getpid())
# time.sleep(0.5)
# print(num, os.getpid())
# time.sleep(0.5)
# print(num, os.getpid())
#
# if __name__ == ‘__main__‘:
# print(os.getpid())
# p = Process(target = func,args=(10,)) #創造一個進程
# p.start() #開啟進程
# print(os.getpid())
# time.sleep(1)
# print(os.getpid(),1)
# time.sleep(1)
# print(os.getpid(), 2)
# 同步:先洗衣服再做飯
# 異步:有了洗衣機,洗衣機洗衣服,然後你做飯
# 異步可以有效的提高執行效率,進程與進程之間都是異步的
# 幾個概念
# 子進程
# 住進程
# 父進程
#
# 關於print的順序
from multiprocessing import Process
import time
#什麽手機進程:在程序運行中,計算機最小的資源分配單位
# 程序唄執行會產生一個主進程,同時主進程也叫父進程
# 在python中可以用代碼啟動一個子進程
# 父子進程之間的數據是異步的,各自執行自己的
# global()全局的 local局部的
# 主進程什麽時候結束:主進程會等待子進程結束後在結束
# n = 100
# def func():
# global n
# n = 0
# print(‘-------‘)
# # func()
# # print(n)
#
# # func()
# if __name__ == ‘__main__‘:
# Process(target=func).start()
# time.sleep(1)
# print(n)
#
#
# 開啟多個子進程
def func(n):
time.sleep(1) #只要在等待就會陷入阻塞狀態
print(‘_‘*n)
if __name__ == ‘__main__‘:
for i in range (10):
Process(target=func,args=(i,)).start()
# Process(target=func,args=(2,)).start()
# Process(target=func,args=(3,)).start()
# Process(target=func,args=(4,)).start()
#時間片的輪轉
進程 子進程