python - threading 多进程模块

最基本的多进程示例:

import threading
import time

def bar(start_time,sleep_time):
    print ('is start_time: ......',start_time)
    time.sleep(sleep_time)
    print ('sleep done,',sleep_time)

if __name__ == '__main__':
    b1 = threading.Thread(target=bar,args=(time.time(),44))
    b2 = threading.Thread(target=bar,args=(time.time(),65))
    b1.start()
    b2.start()

    print ('script done!')

join:

  等待至线程中止。阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

import threading
import time
def bar(name,sleep_time):
    print ('is start_time: ......',name)
    time.sleep(sleep_time)
    print ('sleep done,',sleep_time)
if __name__ == '__main__':
    b1 = threading.Thread(target=bar,args=('name_1',2))
    b2 = threading.Thread(target=bar,args=('name_2',3))

    b1.start()
    b2.start()
    b1.join()

    print ('script done!')

# is start_time: ...... name_1
# is start_time: ...... name_2
# sleep done, 2
# script done!
# sleep done, 3

setDaemon(daemonic) :

  设置守护线程标志为布尔值daemonic。它必须在start()调用之前被调用。

import threading
import time
def bar(name,sleep_time):
    print ('is start_time: ......',name)
    time.sleep(sleep_time)
    print ('sleep done,',name)
if __name__ == '__main__':
    threahs = list()

    b1 = threading.Thread(target=bar,args=('name_1',2))
    threahs.append(b1)
    b2 = threading.Thread(target=bar,args=('name_2',3))
    threahs.append(b2)

    b2.setDaemon(True)
    for i in threahs:
        i.start()

    print ('script done!')

# is start_time: ...... name_1
# is start_time: ...... name_2
# script done!
# sleep done, name_1

此处b2是daemon进程,所以在主进程运行完成时直接退出。不会去理会b2的进程是否执行完成。

getName()
  返回线程名。

setName(name)
  设置线程名。
  这名字是只用来进行标识目的的字符串。它没有其他作用。多个线程可以取同一名字。最初的名字通过构造函数设置。

isAlive()
  返回线程是否活动的。

isDaemon()
  返回线程的守护线程标志

run()
  用以表示线程活动的方法。你可能在Python Thread类的子类重写这方法。标准的 run()方法调用作为target传递给对象构造函数的回调对象。

test

猜你喜欢

转载自www.cnblogs.com/qikang/p/8934747.html
今日推荐