相关疑难解决方法(0)

为什么我们需要不可变的类?

我无法得到我们需要一个不可变类的场景.
你有没有遇到过这样的要求?或者你可以给我们任何一个我们应该使用这种模式的真实例子.

java design-patterns immutability

73
推荐指数
10
解决办法
4万
查看次数

可变或不可变的类?

我在一些设计书中读到,不可变类提高了可伸缩性,并且尽可能地编写不可变类.但我认为如此不可改变的阶级会增加对象的扩散.因此,为了提高可伸缩性,使用静态类(具有所有静态方法的类)更好地进行不可变类或更好吗?

java scalability immutability

9
推荐指数
2
解决办法
5017
查看次数

Java避免竞争条件没有同步/锁定

为了避免竞争条件,我们可以在共享变量上同步write和access方法,将这些变量锁定到其他线程.

我的问题是,是否有其他(更好的)方法来避免竞争条件?锁定会使程序变慢.

我发现的是:

  • 如果只有一个共享变量,则使用Atomic类.
  • 对多共享变量使用不可变容器,并使用volatile声明此容器对象.(我从"Java Concurrency in Practice"一书中找到了这个方法)

我不确定它们的执行速度是否比同步方式更快,还有其他更好的方法吗?

谢谢

java concurrency multithreading synchronized race-condition

7
推荐指数
2
解决办法
1万
查看次数