关闭

day11——python 多线程之线程锁

105人阅读 评论(0) 收藏 举报
分类:

例子1:


import threading
import time
num=10
def f1(lock):
    global num
    lock.acquire()
    num-=1
    time.sleep(3)
    print(num)
    lock.release()
lock=threading.Lock()
for i in range(10):
    t=threading.Thread(target=f1,args=(lock,))
    t.start()
print(num)


例子二:

import threading
import time
num=100
def f1(i,lock):
    global num
    lock.acquire()
    num-=1
    time.sleep(2)
    print(num,"**",i)
    lock.release()
lock=threading.BoundedSemaphore(5)
for i in range(30):
    t=threading.Thread(target=f1,args=(i,lock,))
    t.start()
print(num)

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

python3.4多线程实现同步的四种方式(锁机制、条件变量、信号量和同步队列)

临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。 threading的Lock类...
  • djd1234567
  • djd1234567
  • 2015-04-27 21:26
  • 1822

python多线程编程(4): 死锁和可重入锁

From: http://www.cnblogs.com/holbrook/archive/2012/03/08/2385449.html   在线程间共享多个资源的时候,如果两个线程分别占有...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2014-11-19 15:02
  • 1216

python多线程中互斥锁Threading.Lock的简单应用

每个线程互相独立,相互之间没有任何关系,但是在同一个进程中的资源,线程是共享的,如果不进行资源的合理分配,对数据造成破坏,使得线程运行的结果不可预期。这种现象称为“线程不安全”。
  • baidu_24617085
  • baidu_24617085
  • 2016-01-05 14:43
  • 11814

Python多线程中阻塞(join)与锁(Lock)的使用误区

关于阻塞主线程join的错误用法Thread.join() 作用为阻塞主线程,即在子线程未返回的时候,主线程等待其返回然后再继续执行.join不能与start在循环里连用 以下为错误代码,代码创建了...
  • cd_xuyue
  • cd_xuyue
  • 2016-07-28 10:41
  • 3782

多线程中的锁机制

1、为什么要加入锁机制?   首先看一下单例设计模式中懒汉式(详情请点击博客《设计模式之--单例模式》)的一段代码: public class Student { private St...
  • fightfaith
  • fightfaith
  • 2015-11-25 18:55
  • 1775

python爬虫(多线程&锁&信号量)

1、多线程(无锁):threading.Thread(target = ***).start() 2、多线程(锁 & 单线程): threading.Lock() threading.Thread(...
  • trb331617
  • trb331617
  • 2017-06-04 09:09
  • 628

多线程的几种加锁方式详解

NSLock NSLock是Cocoa提供给我们最基本的锁对象,这也是我们经常使用的,除lock和unlock外,NSLock还提供了tryLock和lockBeforeDate:两个方法,前一...
  • qq_35247219
  • qq_35247219
  • 2016-07-17 09:47
  • 19586

python 线程的同步和互斥

先从一个简单的demo开始说起:
  • xluren
  • xluren
  • 2014-11-10 13:33
  • 7410

Python3给线程关键部分加锁

要在多线程程序中安全使用可变对象,需要使用 threading 库中的 Lock 对象。import threadingclass SharedCounter: ''' 一个可以由多个...
  • weixin_38125866
  • weixin_38125866
  • 2017-08-07 17:08
  • 219

【多线程】线程中的同步锁synchronized

当多个线程同时执行时,由于cpu是随机分片的,所以,一个线程在执行过程中被另一个线程打断的情况是经常发生的。 这在某些情况下是会影响到正常的程序的输出结果的。比如银行转账一个人的账户在转账时是不能允许...
  • wangyy130
  • wangyy130
  • 2016-07-25 21:23
  • 931
    个人资料
    • 访问:94717次
    • 积分:5383
    • 等级:
    • 排名:第5843名
    • 原创:464篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条