![]() |
1
2
Synchronized不适用于线程或Runnables,它用于由多个线程访问的数据结构,以确保每个线程都以不破坏其数据的方式访问它们。您自己的示例是一个基本的例子,其中计数以一种不安全的方式递增( using ++, see this question ),因此它需要锁定,以确保一次只有一个线程可以增加它。
如果有其他代码访问count,则还需要进行同步,以便对count进行更新。如果您所做的只是递增一个计数器,那么使用这样的类更有意义
为了使使用synchronized有意义,它确实假设存在多个线程。即使您自己的代码没有创建新线程,也可能存在多个线程调用您的代码的情况(例如在servlet容器中,容器管理线程池并为每个传入请求分配一个线程)。 |
![]() |
2
1
类不需要
您的类可能是其他线程类的参数,该线程类可能有多个实例。为了提供强大的数据一致性,您必须保护代码的关键部分;数据 只需将代码示例更改如下。
我正在演示“
你的班级
如果我改变
到
输出为:
另一方面,您可以将方法设置为
查看oracle文档 page 以便更好地理解。
缺少“”的代码演示
输出:
制作后
到
输出:
在本例中,与前面不同,我们创建了10个不同的
|
|
3
0
但是,假设执行
(假设
问题是如果
A.
|
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 4 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |