秒杀多线程-一个经典的多线程同步问题

哔哩哔哩

2023-01-31 20:01:03

前面章节:


(资料图)

程序描述

主线程启动10个子线程并将表示子线程序号的变量地址作为参数传递给子线程。子线程接收参数 -> sleep(50) -> 全局变量++ -> sleep(0) -> 输出参数和全局变量。

要求:

1.子线程输出的线程序号不能重复。

2.全局变量的输出必须递增。

主要考察点有二个:

1.主线程创建子线程并传入一个指向变量地址的指针作参数,由于线程启动须要花费一定的时间,所以在子线程根据这个指针访问并保存数据前,主线程应等待子线程保存完毕后才能改动该参数并启动下一个线程。这涉及到主线程与子线程之间的同步。

2.子线程之间会互斥的改动和输出全局变量。要求全局变量的输出必须递增。这涉及到各子线程间的互斥。

代码:

运行结果是不确定的。

后面会运用Windows平台下各种手段包括关键段,事件,互斥量,信号量等等来解决这个问题并作一份全面的总结。

参考:https://blog.csdn.net/MoreWindows/article/details/7442333

最新资讯

猜你喜欢

知识问答 魔兽世界DKP是什么

2023-01

百科 晒伤后怎么处理

2022-11

无辣不欢的年轻人 开始吃纯清汤火锅了?

2021-11

江西新增本地确诊病例2例 新增无症状感染者1例

2021-11

浙江天台500多名视障者“重见天日”:好日子在光明中开启

2021-11

黑河市总计出动3097人次警力加强交通管制及卡点值守

2021-11

厨余垃圾回收处理 浙江宁波小菜盆种出绿色循环致富路

2021-11

四川多所高校学子用“青春力量”助力疫情防控

2021-11