-
- 多线程使用示例
import threading from time import sleep, ctime def func(): print threading.current_thread().name, 'start' for i in range(10): print threading.current_thread().name, i sleep(1) print threading.current_thread().name, 'done' def main(): print 'test start...', threading.current_thread().name threads = [] for i in range(10): t = threading.Thread(target=func, args=()) # 创建线程 threads.append(t) for i in range(10): print threads[i].name threads[i].start() # 启动线程 for i in range(10): threads[i].join() # 等待线程结束 print 'test done...', threading.current_thread().name if __name__=='__main__': main()
输出示例(不看也罢):
test start... MainThread Thread-1 Thread-2 Thread-1 start Thread-2 Thread-1 Thread-3 0 startThread-3 Thread-4 start Thread-3 0Thread-5 Thread-4Thread-2 Thread-5 0Thread-6 start start Thread-5 Thread-4 0Thread-7 0 Thread-6 start Thread-6 0 Thread-7Thread-8 start Thread-7 0 Thread-8 startThread-9 Thread-8 0 Thread-9 start Thread-9 0 Thread-10 Thread-10 start Thread-10 0 Thread-3 Thread-2 1 1 Thread-7 Thread-1 11 Thread-8Thread-6 1 Thread-4 1 1 Thread-5 1Thread-9 1Thread-10 1 Thread-3 Thread-6 2Thread-7 Thread-4 Thread-2 2 2 2 2 Thread-1 2 Thread-8 2 Thread-9 2 Thread-5 2 Thread-10 2 Thread-6 3 Thread-2 3Thread-3Thread-4Thread-7 3 3 Thread-1 33Thread-5 3 Thread-8 3 Thread-10 3Thread-9 3 Thread-6 4 Thread-9 4Thread-5 4 Thread-2 4 Thread-3Thread-1 4Thread-7 4Thread-8 Thread-4 4 4 4Thread-10 4 Thread-1 5 Thread-5 5 Thread-4 5 Thread-7 Thread-3 Thread-105 Thread-8 Thread-2 555 Thread-6 55Thread-9 5 Thread-9 Thread-2 Thread-5 Thread-10 Thread-6Thread-1 6666 6 Thread-7Thread-3 6 Thread-8 6 Thread-4 666 Thread-10 7 Thread-6Thread-9 7Thread-1 7 7 Thread-3 Thread-8Thread-4 77 Thread-5 7 Thread-2 7 Thread-7 7 7 Thread-10 8 Thread-8 8 Thread-9Thread-2 88 Thread-1 8 Thread-5 8 Thread-7 8 Thread-3 8 Thread-4 8 Thread-6 8 Thread-10 9 Thread-5 9Thread-8 9 Thread-3Thread-7 9 Thread-9Thread-2 99 9 Thread-1 9 Thread-4 9 Thread-6 9 Thread-8 Thread-5 doneThread-10 donedone Thread-7 done Thread-9 done Thread-2 Thread-3 donedone Thread-1 done Thread-4 doneThread-6 done test done... MainThread
- threading模块中的函数使用示例
# the function in the module threading import threading from time import sleep, ctime # active_count() return the num of active thread # current_thread() return current thread object # enumerate() return the list of active threads # settrace(func) provide a func for all thread def func(): print threading.current_thread().name, 'start' print 'in', threading.current_thread().name,threading.enumerate() sleep(5) print threading.current_thread().name, 'done' def main(): print 'test start...', threading.current_thread().name threads = [] print 'active threads num', threading.active_count() print 'active threads list', threading.enumerate() for i in range(10): t = threading.Thread(target=func, args=()) threads.append(t) print 'creat thread', t.name print 'active threads num', threading.active_count() print 'active threads list', threading.enumerate() for i in range(10): threads[i].start() print threads[i].name, 'is started' print 'active threads num', threading.active_count() print 'active threads list', threading.enumerate() print '-----------------------' print 'active threads num', threading.active_count() print 'active threads list', threading.enumerate() for i in range(10): threads[i].join() print '-----------------------' print 'active threads num', threading.active_count() print 'active threads list', threading.enumerate() print 'test done...', threading.current_thread().name if __name__=='__main__': main()
输出示例(谨慎操作,文件很乱):
test start... MainThread active threads num 1 active threads list [<_MainThread(MainThread, started 139754671793984)>] creat thread Thread-1 creat thread Thread-2 creat thread Thread-3 creat thread Thread-4 creat thread Thread-5 creat thread Thread-6 creat thread Thread-7 creat thread Thread-8 creat thread Thread-9 creat thread Thread-10 active threads num 1 active threads list [<_MainThread(MainThread, started 139754671793984)>] Thread-1 Thread-1 is startedstart in Thread-1active threads num 2 active threads list [[<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>] <_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>] Thread-2 start in Thread-2 Thread-2[<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>] is started active threads num 3 active threads list [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>] Thread-3 startThread-3 in Thread-3is started [ <_MainThread(MainThread, started 139754671793984)>active threads num 4, <Thread(Thread-1, started 139754535368448)> , <Thread(Thread-3, started 139754518583040)>, active threads list [<Thread(Thread-2, started 139754526975744)>] <_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-2, started 139754526975744)>] Thread-4 startThread-4 in Thread-4is started [ <_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-2, started 139754526975744)>, active threads num 5<Thread(Thread-4, started 139754510190336)> ] active threads list [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-4, started 139754510190336)>] Thread-5 startThread-5 in Thread-5 [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, is started<Thread(Thread-2, started 139754526975744)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] active threads num 6 active threads list [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] Thread-6 start in Thread-6Thread-6 [ is started<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] active threads num 7 active threads list [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] Thread-7 startThread-7 in Thread-7 [is started<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>active threads num 8, <Thread(Thread-5, started 139754501797632)>] active threads list [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] Thread-8 start in Thread-8Thread-8 [ is started<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>active threads num 9, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-4, started 139754510190336)>, active threads list [<Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] <_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] Thread-9 startThread-9 in Thread-9 [is started<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)> , <Thread(Thread-9, started 139754125383424)>active threads num 10, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, active threads list [<Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] <_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)>, <Thread(Thread-9, started 139754125383424)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] Thread-10 Thread-10 start in Thread-10is started [ <_MainThread(MainThread, started 139754671793984)>active threads num 11, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)>active threads list , [<Thread(Thread-9, started 139754125383424)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-10, started 139754116990720)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)><_MainThread(MainThread, started 139754671793984)>, , <Thread(Thread-5, started 139754501797632)>] <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)>, <Thread(Thread-9, started 139754125383424)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-10, started 139754116990720)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] ----------------------- active threads num 11 active threads list [<_MainThread(MainThread, started 139754671793984)>, <Thread(Thread-1, started 139754535368448)>, <Thread(Thread-8, started 139754133776128)>, <Thread(Thread-9, started 139754125383424)>, <Thread(Thread-2, started 139754526975744)>, <Thread(Thread-6, started 139754493404928)>, <Thread(Thread-7, started 139754142168832)>, <Thread(Thread-10, started 139754116990720)>, <Thread(Thread-4, started 139754510190336)>, <Thread(Thread-3, started 139754518583040)>, <Thread(Thread-5, started 139754501797632)>] Thread-4 Thread-1 done Thread-7Thread-10 done Thread-5 doneThread-6 Thread-2 Thread-9done done doneThread-3 Thread-8done donedonedone ----------------------- active threads num 1 active threads list [<_MainThread(MainThread, started 139754671793984)>] test done... MainThread
- 多线程使用示例
Python 学习笔记 多线程-threading
猜你喜欢
转载自www.cnblogs.com/PPWEI/p/9746314.html
今日推荐
周排行