多线程案例

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

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

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

相关推荐
小羊失眠啦.8 分钟前
用 Rust 实现高性能并发下载器:从原理到实战
开发语言·后端·rust
避避风港16 分钟前
Java 抽象类
java·开发语言·python
初学小白...19 分钟前
JVM入门知识点
java·服务器·jvm
cookies_s_s25 分钟前
C++20 协程
linux·开发语言·c++
C++chaofan27 分钟前
基于session实现短信登录
java·spring boot·redis·mybatis·拦截器·session
what_201828 分钟前
list集合使用
数据结构·算法·list
摇滚侠28 分钟前
idea 刷新maven,提示java.lang.RuntimeException: java.lang.OutOfMemoryError
java·maven·intellij-idea
果壳~38 分钟前
【Java】使用国密2,3,4.仿照https 统一请求响应加解密
java·https
石油人单挑所有40 分钟前
C语言知识体系梳理-第一篇
c语言·开发语言
hetao17338371 小时前
2025-11-13~14 hetao1733837的刷题记录
c++·算法