Python多任务_线程

2020-03-12  本文已影响0人  Lutous
简单使用
import threading
import time


class MyThread(threading.Thread):
    def run(self):
        for i in range(3):
            time.sleep(1)
            print "I'm" + self.name + '@' + str(i)


def test():
    for i in range(5):
        MyThread().start()
多线程共享全局变量-互斥锁
import threading
import time


g_num = 0


def work1(num):
    global g_num
    for i in range(num):
        mutex.acquire()
        g_num += 1
        mutex.release()
    print("------ in work1, g_num is %d ------" % g_num)


def work2(num):
    global g_num
    for i in range(num):
        mutex.acquire()
        g_num += 1
        mutex.release()
    print "------ in work2, g_num is %d ------" % g_num


print "--- 创建线程之前 g_num is %d ---" % g_num

# 创建一个互斥锁
# 默认是未上锁的状态
mutex = threading.Lock()

t1 = threading.Thread(target=work1, args=(10000,))

t2 = threading.Thread(target=work2, args=(10000,))

t1.start()
t2.start()

print threading.enumerate()
while len(threading.enumerate()) != 1:
    time.sleep(1)

print "--- 创建线程之后 g_num is %d ---" % g_num
上一篇下一篇

猜你喜欢

热点阅读