多线程案例

以下是一个简单的多线程案例,实现了一个简单的计数器程序。该程序会同时启动两个线程,每个线程都会对计数器进行加一操作,并输出当前计数器的值。

python 复制代码
import threading

# 定义一个全局变量作为计数器
counter = 0

# 定义一个线程锁,用于对计数器进行互斥操作
lock = threading.Lock()

# 定义一个线程函数,每次将计数器加1,并输出当前计数器的值
def increment():
    global counter
    with lock:
        counter += 1
    print("Current counter value: {}".format(counter))

# 创建两个线程
t1 = threading.Thread(target=increment)
t2 = threading.Thread(target=increment)

# 启动线程
t1.start()
t2.start()

# 等待线程执行完毕
t1.join()
t2.join()

当程序运行时,输出如下:

复制代码
Current counter value: 1
Current counter value: 2

可以看到,两个线程同时对计数器进行加一操作,并输出了当前计数器的值。由于使用了线程锁,保证了计数器的操作互斥,避免了数据竞争的问题。

相关推荐
不知名XL9 分钟前
day50 单调栈
数据结构·算法·leetcode
风生u10 分钟前
activiti7 详解
java
玄同76514 分钟前
我的 Trae Skill 实践|使用 UV 工具一键搭建 Python 项目开发环境
开发语言·人工智能·python·langchain·uv·trae·vibe coding
岁岁种桃花儿19 分钟前
SpringCloud从入门到上天:Nacos做微服务注册中心(二)
java·spring cloud·微服务
Word码22 分钟前
[C++语法] 继承 (用法详解)
java·jvm·c++
@––––––23 分钟前
力扣hot100—系列2-多维动态规划
算法·leetcode·动态规划
Yorlen_Zhang24 分钟前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
lxl130726 分钟前
C++算法(1)双指针
开发语言·c++
TT哇28 分钟前
【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)
java·vue.js
逝水如流年轻往返染尘31 分钟前
Java中的数组
java