from multiprocessing import Process import time import os # # def acb(n): # print(n) # # # if __name__ == '__main__': # p1 = Process(target=acb, args=("ready", )) # p1.start() # time.sleep(1) # print("end") # class MP(Process): # def __init__(self, this): # super().__init__() # self.this = this # print(self.this) # # def run(self): # print("hehe") # print(os.getpid()) # print(self.pid) # # def start(self): # super().start() # print("game over") # # # if __name__ == '__main__': # mp = MP("2b") # mp.start() # time.sleep(1) # print("可以滾了!") # print(bin(10)) # print(int("0b1010", 2)) # print(oct(10)) # print(int("0b1010", 2)) # print(hex(10)) # print(int("0xa", 16)) # a = 10 # def dd(): # global a # a = 11 # print(a) # dd() # print(a) # def abc(x, y, m, n): # print(m-n) # print(x, y) # # # if __name__ == '__main__': # p = Process(target=abc, args=(5, 0), kwargs={"n": 100, "m": 998}) # 關鍵字參數必須對應相同的關鍵字名稱 # p.start() # print("睡一會!") # time.sleep(10) # print("咚咚咚, 結束了") # me = 998 # # def sub_process(): # st_time = time.time() # global me # 引入全局變量 # me = 666 # print(me) # end_tiem = time.time() # print(end_tiem-st_time) # # # if __name__ == '__main__': # main_p = Process(target=sub_process) # 定義子進程 # # main_p.start() # time.sleep(3) # 趴三秒 # print(me) # main進程變量 # def c(): # print(5) # time.sleep(5) # print(4) # time.sleep(5) # # # if __name__ == '__main__': # p = Process(target=c) # p.start() # time.sleep(6) # p.terminate() # print("end") # join 方法, 等待子進程執行結束執行下后續代碼(阻塞狀態) # def p(m=0): # print(m, 111) # if __name__ == '__main__': # # p1 = Process(target=p,) # # p1.start() # # p1.join() # p_lst = [] # for i in range(8): # p1 = Process(target=p, args=(i,)) # p1.start() # p_lst.append(p1) # # p1.join() # 等待進程結束后執行下一次循環,效率低 # for p in p_lst: # 所有進程異步, 等待結束執行主程序, 阻塞等待所有進程結束后放開 # p.join() # # print("end") # 僵屍進程, 子程序還在執行,主程序已經執行完畢, 但是主進程並未完全退出, 依然跟隨子進程 # 孤兒進程, 主進程開啟子進程后異常關閉, 子進程依然繼續執行 # 守護進程, 主進程退出后,子進程會跟隨其同時退出, 不受保護, 主進程退出時不考慮子進程的運行狀態, # def pp(): # time.sleep(2) # print(1) # if __name__ == '__main__': # p = Process(target=pp,) # p.daemon = True # 設置p為守護進程, # p.start() # # p.daemon = True # 沒開始就結束了,要報錯的 # print(11) # 非阻塞# 設置阻塞狀態立即執行,不等待 # import socket # s = socket.socket() # address = ("192.168.15.102", 8880) # s.bind(address) # s.setblocking(False) # 不等待..,要報錯的 # s.listen(0) # c, d = s.accept()