Python3多线程如何为?

摘要:简单实现多线程 import threading import time def sing(sing): for i in range(5): print(" sing() {}".for
简单实现多线程 import threading import time def sing(sing): for i in range(5): print("---sing()---{}".format(sing)) time.sleep(1) def dance(dance): for i in range(5): print("---dance()---{}".format(dance)) time.sleep(1) def main(): t1 = threading.Thread(target=sing,args=("t1",)) t2 = threading.Thread(target=dance,args=("t2",)) t1.start() t2.start() if __name__ == "__main__": main() 多线程互斥锁 import threading import time A = 2 lock = threading.Lock() #创建一个互斥锁 def sing(sing): global A for i in range(500000): lock.acquire() #加锁 A += 1 lock.release() #解锁 print('{}:{}'.format(sing,i)) def dance(dance): global A for i in range(500000): lock.acquire() #加锁 A -= 1 lock.release() #解锁 print('{}:{}'.format(dance,i)) def main(): global A t1 = threading.Thread(target=sing,args=("t1",)) t2 = threading.Thread(target=dance,args=("t2",)) t1.start() t2.start() t1.join() t2.join() print(A) if __name__ == "__main__": main() 查看线程数量 使用 threading.enumerate() 获取当前所有线程。 此处打印出一个列表,列表中共有3个线程信息。一个是主线程,另外两个是子线程 这里需要注意,我们需要在代码中使用join()方法来阻塞主线程。当所有阻塞的子线程执行完毕后,才会继续执行主线程。
阅读全文