多线程案例

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

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

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

相关推荐
basketball616几秒前
C++进阶:3. unique_ptr 现代C++内存管理的基石
java·jvm·c++
我不是懒洋洋4 分钟前
从零实现一个Redis客户端:RESP协议与网络编程
开发语言·c++
许彰午5 分钟前
13_HashMap底层原理详解
算法·哈希算法
GIOTTO情6 分钟前
基于 NLP 情感加权算法的智能舆情处置系统架构与落地实现
人工智能·算法·自然语言处理
zzqssliu7 分钟前
跨境代购系统的物流和通知模块重构思考:从设计模式到生产落地
java·设计模式·重构
小小码农Come on10 分钟前
Qt::WA_StyledBackground属性的作用
开发语言·qt
appearappear10 分钟前
一句sql 根据明细数据状态,精确更新一个主单主状态
java
无风听海10 分钟前
PKCE 的 S256 算法深度剖析:从协议设计到密码学原理
javascript·网络·算法·密码学
凌波粒12 分钟前
LeetCode--530.二叉搜索树的最小绝对差(二叉树)
算法·leetcode·职场和发展
许彰午12 分钟前
04_Java数组操作全解
java·开发语言·python