首页 > 其他 > 详细

多任务

时间:2019-05-08 20:06:18      阅读:183      评论:0      收藏:0      [点我收藏+]

一、线程:

使用threading模块

技术分享图片
import threading
from time import sleep,ctime
def sing():
    for i in range(3):
        print(11111)
        sleep(1)
def dance():
    for i in range(5):
        print(222)
if __name__ ==__main__:
    t1 = threading.Thread(target=sing)
    t2 = threading.Thread(target=dance)
    t1.start()
    t2.start()
线程
技术分享图片
import threading
from time import sleep,ctime
def sing():
    for i in range(3):
        print(11111)
        sleep(1)
def dance():
    for i in range(5):
        print(222)
if __name__ ==__main__:
    t1 = threading.Thread(target=sing)
    t2 = threading.Thread(target=dance)
    t1.start()
    t2.start()
    while True:
        length = len(threading.enumerate())
        print(当前的进程数:%d%length)
        if length<=1:
            break
        sleep(0.5)
查看线程数量
技术分享图片
 threading import Thread
import time

g_num = 100

def work1():
    global g_num
    for i in range(3):
        g_num += 1

    print("----in work1, g_num is %d---"%g_num)


def work2():
    global g_num
    print("----in work2, g_num is %d---"%g_num)


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

t1 = Thread(target=work1)
t1.start()

#延时一会,保证t1线程中的事情做完
time.sleep(1)

t2 = Thread(target=work2)
t2.start()
线程共享全局变量

互斥锁

#  创建锁
mutex = threading.Loock()

#  锁定
mutex.acquire()
  
#  释放
mutex.release()
技术分享图片
import threading
import time
g_num = 0
def test1():

    global g_num
    for i in range(100000000):
        mutex.acquire()
        g_num+=1
        mutex.release()
    print(test1___%d%g_num)
def test2():
    global g_num
    for i in range(100):
        g_num+=1
    print(test2___%d%g_num)
mutex = threading.Lock
p1 = threading.Thread(target=test1,)
p1.start()

p2= threading.Thread(target=test2,)
p2.start()
互斥锁

 

多任务

原文:https://www.cnblogs.com/tylmd/p/10833765.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!