当前位置:  技术问答>java相关

因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作的现象,这种情况下,要不要将所有的方法都用 synchroni

    来源: 互联网  发布时间:2015-10-31

    本文导语:  因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作某一个方法或变量的现象,这种情况下,要不要将所有的方法都用 synchronized 进行限制,如果所有的都加上包括公共的变量也加上...

因为是一个公共类,里面的所有的方法是public的,这样多个用户可能会发生同时操作某一个方法或变量的现象,这种情况下,要不要将所有的方法都用 synchronized 进行限制,如果所有的都加上包括公共的变量也加上,会不会出现问题?

|
我的见解是:如果都是只读的共享,那就不用同步。
如果有可写的,那就只能作同步了。不过资料上说方法同步比对象同步快很多,建议有方法同步。

|
如果不是静态类/静态实例/静态变量,则每个实例都会自己的内存空间,互相不会影响,不需要用 synchronized 进行限制

|
method最终操作的肯定是数据,你只要对操作共享数据的步骤作同步就行了。

|
你可是试试 singleton模式

|
你首先得确定都个用户是否共享同一个类实例,不是类本身。

如果是实例,则对包含delicated数据进行同步。

其实这就是一个多进程对sharing data 操作的问题了。你可以看一下这方面的内容。

|
你这个类是不是存储了很多设置信息,所有方法,变量都是STATIC的吗?

如果是这样{
   如果这些变量不是很敏感
       不用synchronized
   如果这些变量要求很严,很敏感
       用synchronized
}
else{
   不用synchronized
}

|
vector本身是synchronized的,你不需要再synchronized了;如果还有其他必须保持一个实例访问的共享资源,则要用synchronized。


|
关注!!!!

|
不是一个公共类里的所有方法都是public的,method的权限可以是private……

|
不可能的
实例不同呀

|
是的,不可能

|
gz

    
 
 

您可能感兴趣的文章:

  • 菜鸟提问:一个类实现了一个接口,除了要定义接口的所有方法外,可不可以再添加其他方法?
  • 在不清楚基类所有抽象方法的情况下,如何派生一个非抽象的类?
  • 清除ComBox中所有项的方法是CleanItem还是别的什么?
  • Jquery禁用所有select标签的值的方法
  • Java中去除字符串中所有空格的几种方法
  • DevExpress实现GridControl删除所有行的方法
  • 获取sql server表中的所有列字段名称的方法
  • js查找某元素中的所有图片地址的方法
  • php查找任何页面上的所有链接的方法
  • 我初学NETTERM的使用,在哪里可以找到所有(或常用的)命令的使用方法呢?还是需要在什么书上可以找到?
  • Android实现退出时关闭所有Activity的方法
  • java 获取当前路径下的所有xml文档的方法
  • c#转义字符串中的所有正则特殊字符方法示例
  • 诸位大瞎:jsp中不能写方法,可能是因为这个页面里的所有语句都在某个方法中。 我想问一下,怎么复用某个页面里的程序呢? 不用 bean,因为程序要显示很多 html,用 include 也不行,因为 页面有传入参数。
  • 写一个方法,向它传递一个对象,循环打印出对象层次结构中的所有类?thinking in java里面的一个习题不知道如何做请教高手?
  • Yii Framework框架获取分类下面的所有子类方法
  • 深入C# winform清除由GDI绘制出来的所有线条或图形的解决方法
  • C#递归实现显示文件夹及所有文件并计算其大小的方法
  • 有什么简便的可以删除目录下及其各级子目录下所有文件,但保留目录结构的方法么?
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ MultiMaps 成员 clear():删除所有元素
  • 请问如何在web页面调用word,并将所有的所有表单参数调的word中排版、打印。
  • C++ Lists(链表) 成员 clear():删除所有元素
  • 怎么可以得到一个JPanel下的所有JTextField的所有变量名。
  • C++ Maps 成员 clear():删除所有元素
  • 请问:哪里有java所有类包的介绍,用法,及所有类的用途,用法,例子等的书或帮助的下载?
  • C++ Double Ended Queues(双向队列) 成员 clear():删除所有元素
  • 如何让/usr/local/tomcat/目录下所有文件,子目录让所有人都能执行
  • C++ Vectors 成员 clear():清空所有元素
  • 如果计算一个目录下面所有指定类型文件的数目和总大小(包括该目录下所有的子目录)
  • C++ Bitsets 成员 reset():清空所有位
  • 应用程序为普通用户所有,不改变其所有,如何在程序中使用超级用户级别的函数啊
  • C++ Strings(字符串) 成员 find_first_not_of():查找第一个与value中的所有值都不相等的字符
  • 如何把一个目录以及所有子目录下面的所有java源代码文件通过命令一次全部编译。分太多了,问题解决后绝对给分。
  • C++ Strings(字符串) 成员 find_last_not_of():查找最后一个与value中的所有值都不相等的字符
  • 怎样一次杀掉父进程创建的所有子进程?我在父进程中用kill(0,SIGKILL),结果父进程也给干掉了,参数0难道不是表示除自己外的所有同uid的进
  • HTML 5 <base> 标签-规定页面中所有链接的基准 url
  • 快一个月了,我参考了所有的安装帖子,下了所有的补丁,Oracle安装依然出错。为什么??想哭。
  • 数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析
  • MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
  • 操作系统 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3