当前位置: 技术问答>java相关
因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作的现象,这种情况下,要不要将所有的方法都用 synchroni
来源: 互联网 发布时间:2015-10-31
本文导语: 因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作某一个方法或变量的现象,这种情况下,要不要将所有的方法都用 synchronized 进行限制,如果所有的都加上包括公共的变量也加上...
因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作某一个方法或变量的现象,这种情况下,要不要将所有的方法都用 synchronized 进行限制,如果所有的都加上包括公共的变量也加上,会不会出现问题?
|
我的见解是:如果都是只读的共享,那就不用同步。
如果有可写的,那就只能作同步了。不过资料上说方法同步比对象同步快很多,建议有方法同步。
如果有可写的,那就只能作同步了。不过资料上说方法同步比对象同步快很多,建议有方法同步。
|
如果不是静态类/静态实例/静态变量,则每个实例都会自己的内存空间,互相不会影响,不需要用 synchronized 进行限制
|
method最终操作的肯定是数据,你只要对操作共享数据的步骤作同步就行了。
|
你可是试试 singleton模式
|
你首先得确定都个用户是否共享同一个类实例,不是类本身。
如果是实例,则对包含delicated数据进行同步。
其实这就是一个多进程对sharing data 操作的问题了。你可以看一下这方面的内容。
如果是实例,则对包含delicated数据进行同步。
其实这就是一个多进程对sharing data 操作的问题了。你可以看一下这方面的内容。
|
你这个类是不是存储了很多设置信息,所有方法,变量都是STATIC的吗?
如果是这样{
如果这些变量不是很敏感
不用synchronized
如果这些变量要求很严,很敏感
用synchronized
}
else{
不用synchronized
}
如果是这样{
如果这些变量不是很敏感
不用synchronized
如果这些变量要求很严,很敏感
用synchronized
}
else{
不用synchronized
}
|
vector本身是synchronized的,你不需要再synchronized了;如果还有其他必须保持一个实例访问的共享资源,则要用synchronized。
|
关注!!!!
|
不是一个公共类里的所有方法都是public的,method的权限可以是private……
|
不可能的
实例不同呀
实例不同呀
|
是的,不可能
|
gz