【发布时间】:2012-10-13 16:57:49
【问题描述】:
我目前正在学习多线程编程,并且很难掌握线程之间的共享资源。
我有两个共享资源,time 和 alarm
我有三个线程,一个每秒不断更新time,一个监视time 与alarm,最后一个根据用户请求更改time 和alarm。
这是使用互斥信号量来完成的,我有一个简单的设置,描述如下:
-
Main线程,程序从这里开始,承载time和alarm公共变量并实例化子线程。 -
Tick子线程,每1000ms休眠一次,然后修改Mother线程的time变量 -
UserInput子线程,在捕获到用户输入之前被阻塞,并在Main线程中修改time或alarm。 -
Alarm子线程,每 1000ms 休眠一次,当alarm==time时关闭
Main 线程为每个资源保留一个互斥锁,因此一次只有一个线程可以访问它。
这样的设计合理还是我把事情复杂化了?
【问题讨论】:
标签: java multithreading concurrency semaphore