首页 > 编程语言 > 详细

python线程,进程,队列和缓存

时间:2016-07-21 00:41:17      阅读:239      评论:0      收藏:0      [点我收藏+]

一、线程

 threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。

创建线程的两种方式
1.threading.Thread
import threading
def f1(arg):
    print(arg)

t = threading.Thread(target=f1,args=(123,))
#t.start代表这个线程已经准备就绪,等待cpu的调度。
t.start()
2.自定义,继承threading.Thread
class MyThread(threading.Thread):
    def __init__(self, func,args):
        self.func = func
        self.args = args
        super(MyThread, self).__init__()
    def run(self):
        self.func(self.args)
def f2(arg):
    print(arg)
t1 = MyThread(f2,1234)
t1.start()

二、线程锁

当多个线程同时修改同一条数据时可能会出现脏数据,所以,出现了线程锁 - 同一时刻允许一个线程执行操作。

##没使用锁
import threading
import time
NUM = 10
def f1():
    global NUM
    NUM -= 1
    time.sleep(2)
    print(NUM)
for i in range(10):
    t = threading.Thread(target=f1)
    t.start()

##使用锁
def f1(l):
    global NUM
    #上锁
    l.acquire()
    NUM -= 1
    time.sleep(2)
    print(NUM)
    #开锁
    l.release()
#创建锁,Rlock可以加多层锁
lock = threading.RLock()
for i in range(10):
    t = threading.Thread(target=f1,args=(lock,))
    t.start()

 

python线程,进程,队列和缓存

原文:http://www.cnblogs.com/Z-style/p/5690146.html

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