python系统编程(十)
2024-08-24 15:22:36
多线程-非共享数据
对于全局变量,在多线程中要格外小心,否则容易造成数据错乱的情况发生
1. 非全局变量是否要加锁呢?
#coding=utf-8
import threading
import time class MyThread(threading.Thread):
# 重写 构造方法
def __init__(self,num,sleepTime):
threading.Thread.__init__(self)
self.num = num
self.sleepTime = sleepTime def run(self):
self.num += 1
time.sleep(self.sleepTime)
print('线程(%s),num=%d'%(self.name, self.num)) if __name__ == '__main__':
mutex = threading.Lock()
t1 = MyThread(100,5)
t1.start()
t2 = MyThread(200,1)
t2.start()
import threading
from time import sleep def test(sleepTime):
num=1
sleep(sleepTime)
num+=1
print('---(%s)--num=%d'%(threading.current_thread(), num)) t1 = threading.Thread(target = test,args=(5,))
t2 = threading.Thread(target = test,args=(1,)) t1.start()
t2.start()
- 在多线程开发中,全局变量是多个线程都共享的数据,而局部变量等是各自线程的,是非共享的
最新文章
- python --enable-shared
- EhCache的配置
- 管理员必备的Linux系统监控工具
- JQ 练习题
- ubuntu apache开启重写模块
- Knockout.js, Asp.Net MVC and Bootstrap 前端设计
- CI_Autocomplete_2.0.php轻松实现Bebeans与Codeigniter的智能提示
- MFC 学习 之 状态栏的添加
- 使用WebUploader使用,及使用后测试横拍或竖拍图片图片方向不对等解决方案
- CSS实现背景透明/半透明效果的方法
- 字符编码介绍及java中的应用
- 深入理解MyBatis框架的的配置信息
- stm32输入的功能引脚功能介绍
- [Oracle] 使用PL/SQL Developer 连接远程数据库
- JavaWeb学习(一)———JavaWeb入门
- [Luogu1365] WJMZBMR打osu! / Easy
- 以前的 Delphi版本
- Codeforces-Anastasia and pebbles
- python格式化日期
- echart-X轴标签文字方向
热门文章
- MVC开发中的常见错误-02-在应用程序配置文件中找不到名为“OAEntities”的连接字符串。
- 20165206 2017-2018-2 《Java程序设计》第9周学习总结
- 一 time与datetime模块
- 使用python调用wps v9转换office文件到pdf
- 【转】flannel网络的VXLAN及host-gw
- Exception in thread ";main"; java.lang.NullPointerException
- 一脸懵逼搭建Zookeeper分布式集群
- python之多线程 queue 实践 筛选有效url
- python辅助sql手工注入猜解数据库案例分析
- docker compose启动服务超时重启记录