7阻塞进程/ 线程的子进程/子线程之方法jion()

"""阻塞进程的子进程之方法jion()"""


"""
在父进程中创建并启动子进程后,可以调用子进程的方法jion(),这样子进程就会把父进程
阻塞。父进程等子进程执行完后再被阻塞的地方继续执行。
在调用方法jion()时,可以指定参数timeout,设置阻塞时间
"""

from multiprocessing import current_process, Process
import time

class MyProcess(Process):
def run(self):
print(('子进程 %d启动' % current_process().pid))
time.sleep(2)
print(('子进程 %d结束' % current_process().pid))


def main():
print(('父进程 %d启动' % current_process().pid))

mp = MyProcess()
mp.start()

# 阻塞
# mp.join()
# 阻塞设定时间
mp.join(1)
#time.sleep(5)

print(('父进程 %d结束' % current_process().pid))

if __name__ == '__main__':
main()

#############################################################################

"""阻塞线程的子线程之方法jion()"""


"""
在父线程中创建并启动子线程后,可以调用子线程的方法jion(),这样子线程就会把父线程
阻塞。父线程等子线程执行完后再被阻塞的地方继续执行。
在调用方法jion()时,可以指定参数timeout,设置阻塞时间
"""

from threading import current_thread, Thread
import time

class Mythread(Thread):
def run(self):
print(('子线程 %s启动' % current_thread().getName()))
time.sleep(2)
print(('子线程 %s结束' % current_thread().getName()))


print(('父线程 %s启动' % current_thread().getName()))

mt = Mythread()
mt.start()

# 阻塞
#mt.join()
# 阻塞设定时间
mt.join(3)

print(('父线程 %s结束' % current_thread().getName()))
posted @ 2020-05-30 17:50  udbful  阅读(300)  评论(0编辑  收藏  举报