2013-03-06 63 views
0

我有24个元素的阵列 我需要创建10个线程和一个控制器线程 控制器线程的任务是允许一些线程访问阵列并根据特定条件阻止其中的一些线程。 主要问题我们可以使用一个控制器线程 控制所有线程,并且我们可以确保可以访问数组的第一个元素在访问第二个元素之前完成访问: 谢谢控制多线程

+0

我建议阅读Java的并发教程http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html – jozefg 2013-03-06 16:50:57

回答

0

在我听起来像你正在寻找ReadWriteLock s。

我建议你为每一组元素创建一个锁,你想单独控制并将它们保存在控制器中。所有非控制器线程可以在控制器通过写入锁定控制访问时读取锁定。

ReadWriteLocks的主要特征我建议你使用的是能够非常快速地从多个线程中获取和释放读取锁,但尝试写入锁将等待所有读取锁释放,然后阻止所有新的读取锁直到写锁定被释放。