python多线程threading及锁机制
来源:互联网 发布:化妆基础知乎 编辑:程序博客网 时间:2024/06/06 10:40
1,多线程无锁情况下
import threadingimport timebalance = 0def change_it(n): global balance balance = balance + n balance = balance - ndef run_thread(n): for i in range(10000): change_it(n)t1 = threading.Thread(target = run_thread, args = (5, )) //创建一个线程t1t2 = threading.Thread(target = run_thread, args = (8, )) //创建一个线程t2t1.start() //开启线程t2.start()t1.join() //等待线程结束t2.join()print(balance)打印结果理论上是0,实际上不确定,因为线程t1和线程t2存在竞争资源的情况,导致结果的不确定性,可以多运行几次来观察结果2,给资源加锁import threadingimport timebalance = 0lock = threading.Lock() //创建锁def change_it(n): global balance balance = balance + n balance = balance - ndef run_thread(n): for i in range(10000): lock.acquire() //使用锁 change_it(n) lock.release() //释放锁t1 = threading.Thread(target = run_thread, args = (5, ))t2 = threading.Thread(target = run_thread, args = (8, ))t1.start()t2.start()t1.join()t2.join()print(balance)由于多线程是不安全的,有必要给资源加锁,打印结果必定是0
阅读全文
0 0
- python多线程threading及锁机制
- python多线程threading.Condition示例及解析
- python多线程threading.Lock锁实例
- 再谈Python多线程--threading各类锁
- Python 多线程 Threading模块
- Python threading多线程编程
- python --- 多线程之threading
- Python多线程1:threading
- python 多线程threading
- python threading多线程模块
- python多线程threading
- python 多线程(threading)
- python多线程-threading模块
- Python多线程-threading
- 32 Python 多线程 - threading
- Python threading 多线程
- python--threading多线程总结
- Python多线程threading用法
- Python的类的继承的C3算法的序列
- UVALive
- 深入理解链式前向星
- [PAT乙级]1021. 个位数统计 (15)
- HihoCoder
- python多线程threading及锁机制
- Intellij IDEA 没办法创建java文件
- 【HDU】6053
- myeclipse搭建maven web工程
- PYTHON 一些基础面试题目总结
- html5移动端页面1px边框问题
- mapreduce执行过程详细讲解
- HDU 1040数组输出格式&简单排序
- linner入门