多线程-非共享数据(python 版)
多线程-非共享数据
对于全局变量,在多线程中要格外小心,否则容易造成数据错乱的情况发生
1. 非全局变量是否要加锁呢?
#coding=utf-8import threadingimport timeclass MyThread(threading.Thread):# 重写 构造方法def __init__(self,num,sleepTime):threading.Thread.__init__(self)self.num = numself.sleepTime = sleepTimedef run(self):self.num += 1time.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 threadingfrom time import sleepdef test(sleepTime):num=1sleep(sleepTime)num+=1print('---(%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 版)相关推荐
- python—多线程之共享数据
多线程共享全局变量 主线程中的全局变量,作为所有子线程的共享数据 在一个进程中,至少有一个线程,这个线程就是当前进程的主线程, 执行结果: 多线程还可以共享可变的是数据类型
- python爬虫豆瓣电影评价_使用爬虫爬取豆瓣电影影评数据Python版
在 使用爬虫爬取豆瓣电影影评数据Java版 一文中已详细讲解了爬虫的实现细节,本篇仅为展示Python版本爬虫实现,所以直接上代码 完整代码 爬虫主程序 # 爬虫启动入口 from C02.data ...
- 多线程之间共享数据的实现
1: 如果每个线程执行的代码相同,可以使用同一个Runnable对象,然后将共享的数据放在Runnable里面,来实现数据的共享. 例如买票系统... package com.cn.gbx;impor ...
- C++11 多线程线程共享数据
共享数据的问题 这些在操作系统中都有详细的介绍,可以回顾操作系统课程..很典型的就是数据竞争问题. 互斥量保护数据 最原始的方式:使用std::mutex创建互斥量,使用成员lock()加锁,使用成员 ...
- python抓取网站访客手机号_电商 生意参谋 抓取 访客数据 Python版
import requests import json import pandas as pd import time # getRtVisitor.json session = requests.S ...
- chatgpt训练自己的数据python版
一.准备数据(本人准备的是JSONL数据) 1.1.数据格式: {"prompt": "本篇文章的作者是谁?", "completion": ...
- C++多线程快速入门(二)共享数据同步以及数据竞争
目录 std::unique_lock类模板 仅调用一次 线程局部存储 原子变量 往期内容回顾 std::unique_lock类模板 互斥锁保证了线程间的同步,却将并行操作变成了串行操作,对性能有较 ...
- java 多线程共享变量两类问题_Java并发基础09. 多个线程间共享数据问题
先看一个多线程间共享数据的问题: 设计四个线程,其中两个线程每次对data增加1,另外两个线程每次对data减少1. 从问题来看,很明显涉及到了线程间通数据的共享,四个线程共享一个 data,共同操作 ...
- C++并发编程线程间共享数据std::future和sd::promise
线程间共享数据 使用互斥锁实现线程间共享数据 为了避免死锁可以考虑std::lock()或者boost::shared_mutex 要尽量保护更少的数据 同步并发操作 C++标准库提供了一些工具 可以 ...
最新文章
- 深度分析typedef--定义自己的数据类型
- uoj 118 赴京赶考
- 10截图时屏幕变大_手机上网课、开视频会议,如何让屏幕变大一点?
- 【英语学习】 - 君若不离不弃,吾当生死相依
- android 数据持久化——I/O操作
- 深入理解成分句法分析中的Dynamic Oracle
- 如何正确处理HTTP 404错误页面
- Cache【硬盘缓存工具类(包含内存缓存LruCache和磁盘缓存DiskLruCache)】
- wxPython练习
- 十大旗舰基金是怎样炼成的(主动权益)
- 华为设备OSPF配置命令
- Python学习:IndentationError: expected an indented block
- 使用U盘重装MacOS的简单步骤
- pm2开机启动项目脚本
- LEBERT:Lexicon Enhanced Chinese Sequence Labelling Using BERT Adapter
- STM32 触摸屏触摸功能
- Failure obtaining db row lock: Lock wait timeout exceeded; try restarting transaction java定时任务
- opencv之伪彩变换
- 认识计算机教案模板表格,word表格制作教学设计范文
- protect your eyes - 豆绿色