我目前正在研究多线程编程,并且很难掌握线程之间的共享资源。
我有两个共享资源,time
并且alarm
我有三个线程,一个time
每秒不断更新,一个监控time
,alarm
最后一个根据用户请求time
进行更改alarm
。
这是使用互斥信号量来完成的,我有一个简单的设置,如下所述:
Main
线程,程序从这里开始,宿主time
和alarm
公共变量并实例化子线程。Tick
子线程,每1000ms休眠一次,然后修改Mother
线程的time
变量UserInput
子线程,在捕获用户输入之前被阻塞,并在线程中修改time
或修改。alarm
Main
Alarm
子线程,每 1000 毫秒休眠一次,当alarm
==时关闭time
线程为每个资源保留一个互斥锁,Main
因此一次只有一个线程可以访问它。
这样的设计是合理的还是我只是把事情复杂化了?