实现同时运行多个线程工作,主要通过信号量的设置,但还是在一个CPU上执行,具体要实现的例子可以放在函数里执行,实现单核多并发,还等待什么...... #!/usr/bin/env python # -*- coding: utf-8 -*- import threading import time import random def work_func(): print "worker thread is started at %s"% threading.current_thread() random.seed() time.sleep(random.random()) print "worker thread is finished at %s"%threading.current_thread() def sinple_thread_demo(): for i in range(100): t=threading.Thread(target=work_func) t.start() def worker_func_lock(lock): lock.acquire() work_func() lock.release() gLock=threading.Lock() gSem=threading._Semaphore(100)#信号量,允许同时运行的线程数 def thread_demo_lock(): for i in range(100): #sl=threading.Thread(target=worker_func_lock,args=[gLock]) sl=threading.Thread(target=worker_func_lock,args=[gSem])#参数传入信号量 sl.start() if __name__=="__main__": #sinple_thread_demo()#通过锁实现串行 thread_demo_lock()
本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1882455