java - 多线程安全类

标签 java multithreading concurrency

Question:

A) Write a thread safe class with methods doA(), doB(), doC(). Each of these methods must report the method name, time of invocation, and calling thread name.

B) Write a multi threaded driver that spawns 4 threads, and each thread must call every method – doA(), doB(), doC() – 10 times

我假设这意味着 doA()、doB()、doC() 必须是安全的。但它们都不会改变对象内的共享状态,它们只是读取对象状态,如方法名、线程名和运行时间。那么,我需要同步每个方法吗?对于每个线程内的计数器,它是不共享的。

我有点疑惑,对象的哪个状态需要保护?

编辑: 我们是否需要一种机制来保证doA()、doB()、doC()的运行顺序?我不这么认为。

最佳答案

从它的声音来看,您的对象根本没有可变状态。没有可变状态的对象通常(不总是,但通常)是线程安全的,无需任何额外的锁定。当然,如果有其他要求确实暗示可变状态,答案就会不同。

关于java - 多线程安全类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513443/

相关文章:

.net - 检查AutoResetEvent状态

c# - 启动并等待新线程而不阻塞 UI 线程

java - ListView 不出现

java - 如何更改tomcat的上下文路径?

java - 为什么我的代码无法在 java 多线程中运行多个客户端?

ruby-on-rails - rails - 实现一个简单的锁来防止用户同时编辑相同的数据

java - 寻找等待对象

java : why is it safe to modify a map's entry's value while we are iterating over it?

java - 如何使用注释使更具体的 urlPattern 覆盖更广泛的模式

java - 搜索网格中每个图 block 的相邻图 block 的有效方法?