多线程threading 锁lock-尊龙官方平台

多线程threading 锁lock

el/2024/3/25 16:22:40
import threading"""
如何解决多线程共享全局变量的问题?
用锁,先获取锁:lock.acquire(),处理共享全局变量,释放锁:lock.release();另一个线程才能获取锁,处理全局变量
注意:加锁,只加到必要的位置:改变全局变量的位置,没有的地方不加,比如打印等等
加几把锁,看处理几个全局变量
查看当前线程数: print(len(thread.enumerate())) 是数,所以用len()。
thread.enumerate() 打印的是线程列表
"""value = 0
lock = threading.lock()def deal_value():global valuelock.acquire()for i in range(3):value  = 1lock.release()print("value: %s" % value)def main():print("main value: %s" % value)for x in range(5):t = threading.thread(target=deal_value)t.start()print("main value: %s" % value)if __name__ == '__main__':main()# main value: 0
# value: 3
# value: 6
# value: 9
# value: 12
# value: 15
# main value: 15

http://www.ngui.cc/el/5126973.html

相关文章

多线程_生产者_消费者_锁lock_condition

import threading import random import datetime""" 模拟3天的简易仓库存货和出货运营模式:每天售卖电脑时检查电脑仓库存储量是否小于100,小于的话去进行补货,随机生成一个补货单;大于等于100时,去进…

python 版本、包管理相关note

1 将python3.7的所有安装包安装到python3.9 # 导出python3.7所有安装包 ~ % pip3.7 freeze > requirements.txt # requirements.txt 自定义 # 安装所有安装包到python3.9 ~ % pip3.9 install -r requirements.txt 2 ssl安全认证报错 报错: ssl.sslcertve…

mac 安装virtualenvwrapper后 执行命令mkvirtualenv 123-env,报错:zsh: command not found: mkvirtualenv

现象: ~ % mkvirtualenv 123-env zsh: command not found: mkvirtualenv 解决: 1、确认文件which virtualenvwrapper.sh的路径 /library/frameworks/python.framework/versions/3.9/bin/virtualenvwrapper.sh 2、mkdir ~…

ipad一张图应用系统

1. 系统概述 系统由两个部分组成:地图界面、菜单栏。 地图窗体:显示加载的地图数据,是进行数据浏览、查询,统计分析以及坐标采集的主要工作场所。 菜单栏:提供完成地图浏览、查询、统计分析以及坐标采集工作所需的各个功能选项。 2. 运行…

leetcode 刷题 -----删除无效括号(1)

给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。 返回所有可能的结果。答案可以按 任意顺序 返回。 示例 1: 输入:s "()())()" 输出:["(())()",&quo…

leetcode 刷题 ----- 重新排序得到 2 的幂(2)

题目描述: 给定正整数 n ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。 如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。 示例如下&…

leetcode 刷题 ----- 路径交叉(3)

提示: 1 < distance.length < 1051 < distance[i] < 105 问题分析: 1.首先考虑,当线条数小于4时,是不肯有交叉的。每一个线段为1,线段是只能根据东南西北四个方向走动的。 2.线段条数大于等于 4 时&…

leetcode 刷题 -----删除指定节点(7)

请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 示例 1: 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:指定链表中值为 5 的…

leetcode刷题----- 有效的完全平方数

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 进阶:不要 使用任何内置的库函数,如 sqrt 。 解题思路: 完全平方指用一个整数乘以自己例如1…

leetcode 刷题 -----最长定差子序列(11)

给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。 子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。 示例 1: 输入:arr = [1…
网站地图