如何防止多个用户同时执行某一个方法或类? 由于每一个用户的执行都会反过来影响其他用户的状态和信息,需要避免这些用户同时执行,怎样做?如果做了限制,那么是应该让别的用户等待呢?还是怎样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【gzronald70】截止到2008-07-19 09:06:29的历史汇总数据(不包括此帖):发帖的总数量:0 发帖的总分数:0 每贴平均分数:0 回帖的总数量:0 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:0 结贴的总分数:0 无满意结贴数:0 无满意结贴分:0 未结的帖子数:0 未结的总分数:0 结贴的百分比:---------------------结分的百分比:---------------------无满意结贴率:---------------------无满意结分率:---------------------如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html 更准确地说实在方法前加上关键字 synchronized (同步)即可,如果在执行时该方法中的变量可能在同一个类中其他方法中被修改,那么可以给这个类加一个synchronized关键字 public void synchronized XXX () {}线程同步,说白了就是这个方法就只能一个人一个人的来跑····· 都回答完了,呵呵,我就补充下吧,使用synchronized 进行同步效率会降低很多 建议看synchronized相关的资料。以下是Thinking in Java第二版中文版,得到有关synchronized的如下信息1、synchronized关键字的作用域有二种:1)是某个对象实例类,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法;2)是某个类的范围,synchronized static aStaticMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。2、除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象;3、synchronized关键字是不能继承的,也就是说,基类的方法synchronized f(){} 在继承类中并不自动是synchronized f(){},而是变成了f(){}。继承类需要你显式的指定它的某个方法为synchronized方法; synchronized,不过不一定要加到方法的前面,也可以加到方法里面你认为需要同步的代码段中,这样效率会比直接加在方法前面高 import的疑问 不显示删除回复显示所有回复显示星级回复显示得分回复 求计算机操作系统(修订版)(汤子瀛)的电子书 菜鸟,快点救救本人呀 关于Java程序名称规则的补充 高手救命啊!都是概念 命令行上执行可以正确出文件。java执行却不行?大家帮手找找原因 Java中如何修改SqlServer里的image字段 国庆放分,特菜问题~~ 急!我使用一个继承了JComponent的类绘图,我想将绘的图绘到Image,有什么办法吗? 两位斑竹,各位大虾,介绍一下各种开发工具的主要开发方向吧! 菜鸟提问 :java 初学者 路径分隔符是不是用什么差不多?
楼主【gzronald70】截止到2008-07-19 09:06:29的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
以下是Thinking in Java第二版中文版,得到有关synchronized的如下信息
1、synchronized关键字的作用域有二种:1)是某个对象实例类,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法;2)是某个类的范围,synchronized static aStaticMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。2、除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象;3、synchronized关键字是不能继承的,也就是说,基类的方法synchronized f(){} 在继承类中并不自动是synchronized f(){},而是变成了f(){}。继承类需要你显式的指定它的某个方法为synchronized方法;