PYTHON 多线程信号量

实现同时运行多个线程工作,主要通过信号量的设置,但还是在一个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()


上一篇:索引使用的好处与坏处(Oracle测试)(上)


下一篇:python3中的进程