【请教】这样的设计会不会存在什么问题呢?

sylthas 2013-10-19 12:15:05
public class A {

private String key;

private A() {
}

public String process(Object obj) {
// 这里对象传入对象obj进行某些处理后返回结果
this.key = obj.getClass().getName();
return key;
}

public static String enter(Object obj) {
// 这里提供一个入口,处理出入对象
return (new A().process(obj));
}
}

在其他地方以 A.enter(obj) 进行调用。
主要是想知道在多线程调用时会不会有问题,比如线程间干扰、性能影响方面的。
...全文
214 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lsheep 2013-10-19
  • 打赏
  • 举报
回复
你调用A.enter(obj),每次都会new一个新的A对象,这部分不会有问题。但如果你在不同的线程中处理同一个obj对象,这就会有线程同步的问题,但就你这段代码而言,this.key = obj.getClass().getName();只是一个读操作,即使没有加锁,也不会出现问题,但如果在process函数中有对obj写的操作,就必须考虑加锁了。 至于性能方面,这要看你具体情况了。
Defonds 2013-10-19
  • 打赏
  • 举报
回复
虽然是静态方法,但没静态变量,线程间干扰不用担心。 性能要看你测试结果了。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧