当前位置: 首页 > news >正文

做国外贸易哪个网站好wordpress 影响力

做国外贸易哪个网站好,wordpress 影响力,音乐排行榜html页面作业,现在做一个网站系统多少钱一、线程锁 Threading模块为我们提供了一个类#xff0c;Threading.Lock锁。我们创建一个该类对象#xff0c;在线程函数执行前#xff0c;“抢占”该锁#xff0c;执行完成后#xff0c;“释放”该锁#xff0c;则我们确保了每次只有一个线程占有该锁。这时候对一个公共…  一、线程锁 Threading模块为我们提供了一个类Threading.Lock锁。我们创建一个该类对象在线程函数执行前“抢占”该锁执行完成后“释放”该锁则我们确保了每次只有一个线程占有该锁。这时候对一个公共的对象进行操作则不会发生线程不安全的现象了。 1、我们先建立了一个threading.Lock类对象lock,在run方法里我们使用lock.acquire()获得了这个锁。此时其他的线程就无法再获得该锁了他们就会阻塞在“if lock.acquire()”这里直到锁被另一个线程释放lock.release()。 2、如果多个线程要调用多个现象而A线程调用A锁占用了A对象B线程调用了B锁占用了B对象,A线程不能调用B对象B线程不能调用A对象于是一直等待。这就造成了线程“死锁”。 Threading模块中也有一个类RLock称之为可重入锁。该锁对象内部维护着一个Lock和一个counter对象。counter对象记录了acquire的次数使得资源可以被多次require。最后当所有RLock被release后其他线程才能获取资源。在同一个线程中RLock.acquire可以被多次调用利用该特性可以解决部分死锁问题 3、当多个线程同时访问一个数据时需加锁排队变成单线程一个一个执行 4、加锁避免并发导致逻辑出错 5、每当一个线程a要访问共享数据时必须先获得锁定如果已经有别的线程b获得锁定了那么就让线程a暂停也就是同步阻塞等到线程b访问完毕释放锁以后再让线程a继续 6、语法 lockthreading.Lock() #创建线程锁 lock threading.RLock()#创建递归锁多个锁时用这个 lock.acquire() #锁住 lock.release() 释放锁 二、线程锁实例 #未加锁 如果多个线程同时操作某个数据会出现不可预料的结果。比如以下场景当小伙伴a在往火锅里面添加鱼丸的时候小伙伴b在同时吃掉鱼丸这很有可能导致刚下锅的鱼丸被夹出来了没有熟或者还没下锅就去夹鱼丸夹不到# codingutf-8 import threading import time def chiHuoGuo(people, do):print(%s 吃火锅的小伙伴%s % (time.ctime(),people))time.sleep(1)for i in range(3):time.sleep(1)print(%s %s正在 %s 鱼丸% (time.ctime(), people, do))print(%s 吃火锅的小伙伴%s % (time.ctime(),people)) class myThread (threading.Thread): # 继承父类threading.Threaddef __init__(self, people, name, do):重写threading.Thread初始化内容threading.Thread.__init__(self)self.threadName nameself.people peopleself.do dodef run(self): # 把要执行的代码写到run函数里面 线程在创建后会直接运行run函数重写run方法print(开始线程: self.threadName)chiHuoGuo(self.people, self.do) # 执行任务print(结束线程: self.name) print(yoyo请小伙伴开始吃火锅) # 设置线程组 threads [] # 创建新线程 thread1 myThread(xiaoming, Thread-1, 添加) thread2 myThread(xiaowang, Thread-2, 吃掉) # 添加到线程组 threads.append(thread1) threads.append(thread2) # 开启线程 for thread in threads:thread.start() # 阻塞主线程等子线程结束 for thread in threads:thread.join() time.sleep(0.1) print(退出主线程吃火锅结束结账走人)C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py yoyo请小伙伴开始吃火锅 开始线程: Thread-1 Fri Mar 15 08:33:19 2019 吃火锅的小伙伴xiaoming 开始线程: Thread-2 Fri Mar 15 08:33:19 2019 吃火锅的小伙伴xiaowang Fri Mar 15 08:33:21 2019 xiaowang正在 吃掉 鱼丸 Fri Mar 15 08:33:21 2019 xiaoming正在 添加 鱼丸 Fri Mar 15 08:33:22 2019 xiaowang正在 吃掉 鱼丸 Fri Mar 15 08:33:22 2019 xiaoming正在 添加 鱼丸 Fri Mar 15 08:33:23 2019 xiaowang正在 吃掉 鱼丸 Fri Mar 15 08:33:23 2019 吃火锅的小伙伴xiaowang 结束线程: Thread-2 Fri Mar 15 08:33:23 2019 xiaoming正在 添加 鱼丸 Fri Mar 15 08:33:23 2019 吃火锅的小伙伴xiaoming 结束线程: Thread-1 退出主线程吃火锅结束结账走人Process finished with exit code 0 #线程锁单锁实例 import time,threading def run(n):lock.acquire() #加锁global numnum1lock.release() #释放锁 lockthreading.Lock()#获得线程锁 num0 threads[] for i in range(50):threadthreading.Thread(targetrun,args(t-%s%i,))thread.start()threads.append(thread) for i in threads:i.join() print(num:,num)C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py num: 50Process finished with exit code 0#线程锁加锁实例# codingutf-8 import threading import time def chiHuoGuo(people, do):print(%s 吃火锅的小伙伴%s % (time.ctime(),people))time.sleep(1)for i in range(3):time.sleep(1)print(%s %s正在 %s 鱼丸% (time.ctime(), people, do))print(%s 吃火锅的小伙伴%s % (time.ctime(),people)) class myThread (threading.Thread): # 继承父类threading.Threadlock threading.Lock() # 线程锁def __init__(self, people, name, do):重写threading.Thread初始化内容threading.Thread.__init__(self)self.threadName nameself.people peopleself.do dodef run(self): # 把要执行的代码写到run函数里面 线程在创建后会直接运行run函数重写run方法print(开始线程: self.threadName)# 执行任务之前锁定线程self.lock.acquire()chiHuoGuo(self.people, self.do) # 执行任务# 执行完之后释放锁self.lock.release()print(结束线程: self.name) print(yoyo请小伙伴开始吃火锅) # 设置线程组 threads [] # 创建新线程 thread1 myThread(xiaoming, Thread-1, 添加) thread2 myThread(xiaowang, Thread-2, 吃掉) # 添加到线程组 threads.append(thread1) threads.append(thread2) # 开启线程 for thread in threads:thread.start() # 阻塞主线程等子线程结束 for thread in threads:thread.join() time.sleep(0.1) print(退出主线程吃火锅结束结账走人)C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py yoyo请小伙伴开始吃火锅 开始线程: Thread-1 Fri Mar 15 08:36:39 2019 吃火锅的小伙伴xiaoming 开始线程: Thread-2 Fri Mar 15 08:36:41 2019 xiaoming正在 添加 鱼丸 Fri Mar 15 08:36:42 2019 xiaoming正在 添加 鱼丸 Fri Mar 15 08:36:43 2019 xiaoming正在 添加 鱼丸 Fri Mar 15 08:36:43 2019 吃火锅的小伙伴xiaoming 结束线程: Thread-1 Fri Mar 15 08:36:43 2019 吃火锅的小伙伴xiaowang Fri Mar 15 08:36:45 2019 xiaowang正在 吃掉 鱼丸 Fri Mar 15 08:36:47 2019 xiaowang正在 吃掉 鱼丸 Fri Mar 15 08:36:48 2019 xiaowang正在 吃掉 鱼丸 Fri Mar 15 08:36:48 2019 吃火锅的小伙伴xiaowang 结束线程: Thread-2 退出主线程吃火锅结束结账走人Process finished with exit code 0 #线程锁多个锁时需加递归锁import threading, time def run1():print(grab the first part data)lock.acquire()global numnum 1lock.release()return num def run2():print(grab the second part data)lock.acquire()global num2num2 1lock.release()return num2 def run3():lock.acquire()res run1()print(--------between run1 and run2-----)res2 run2()lock.release()print(res, res2) num, num2 0, 0 lock threading.RLock() #递归锁 for i in range(3):t threading.Thread(targetrun3)t.start() while threading.active_count() ! 1:print(threading.active_count()) else:print(----all threads done---)print(num, num2)
http://www.zqtcl.cn/news/155336/

相关文章:

  • 万户网站管理系统4.0cms监控系统手机版下载
  • 宁波专业网站建设怎么做如何做一个虚拟网站
  • 网站栏目建设调研公司怎么建立一个网站
  • 苍溪建设局网站网站建设和维护采购协议
  • 代做网站微信号下载 wordpress插件
  • 泉州住房建设局网站wordpress输入html代码
  • 为什么访问外国网站速度慢沈阳网站公司排名
  • 网站建设+泰安网站项目建设策划方案
  • 微信人生里面微网站怎么做wordpress 第三方登录 代码
  • 做商城网站哪里高端大气网站案例
  • 网站做项目网站设计公司深
  • 学校做网站及费用建设网站有何要求
  • 河北邢台移动网站建设宁波网站开发公司电话
  • 免费建立个人网站申请seo搜索引擎优化推广
  • 如何拷贝服务器里面网站做备份金融网站怎么做的
  • 什么网站做的比较好网上投资网站建设
  • 公司网站运营方案策划办网站怎么赚钱
  • 贾汪区建设局网站设计接单兼职网站
  • 东莞商城网站建设哪家便宜wordpress 插件路径
  • 网站服务器 安全快递系统专注快递企业网站开发
  • 旅游网站平台建设的方案深圳移动官网网站建设
  • 如何建设企业人力资源网站网站建设和网络优化的区别
  • 辽宁网站设计影响网站用户体验
  • cms网站如何修改黄山建设网站
  • 宾爵手表官方网站小熊源码网
  • 荥阳网站建设网站建设取得了
  • 江苏省住房和城乡建设厅 官方网站wordpress点击下载
  • 找家里做的工作上哪个网站公司取名三个字推荐
  • 购物网站建设源码wordpress 多多进宝
  • 重庆定制网站建设地址晋安福州网站建设