【发布时间】:2018-11-13 23:23:11
【问题描述】:
我是并发方面的新手(我相信我在 Monitors、Semaphores 和 reentrantLocks 方面做得很好)所以我不能使用它们。 我必须使用并发包中的任何类或接口。
Point 1.- 很少有线程必须访问一个数组并对它的元素进行求和(我在这里使用了原子变量,有一个原子变量用作数组的指针)。
点 2.- 在这里,许多线程(汽车)在岸边有,要过河。有一个模拟船的线程。当船上有 10 辆汽车时,它驶向对岸。重复这种安全措施,直到所有汽车都过河。我真的不知道在这里使用哪些。
Point 3.- 在这里,一些线程必须读取一些信息,而其他线程必须修改该信息(任意次数)。我相信在这里我必须使用 ReadWriteLock。
Point 4.- 生产者/消费者之类的问题。这里我使用了 BlockingQueue。
第 5 点。- 组成一个类似问题的交换器并解决它(完成,非常简单的一个......交换字符串变量的 2 个线程)。
如果您对在某些点使用哪种方法有任何建议(例如“不,在第 3 点使用原子变量,在第 1 点使用 cyclicBarrier”),对我有很大帮助!
谢谢!
【问题讨论】:
-
解决这个问题的更好方法是确定每个并发原语的用途,例如通过阅读它们的 Javadoc。然后,您不仅可以回答这个问题,还可以为您在职业生涯中遇到的每个并发问题选择合适的工具。
-
我已经阅读了很多关于它的信息,但我有点迷茫。 Theacher 上周五给了我们这个项目,必须在 23 号周五交付。他们几乎没有给我们关于这门课的任何信息......我知道我必须继续阅读,但是在这个问题上任何东西都可能非常方便,呵呵
标签: java multithreading concurrency