static方法同步的问题? 你可以在方法中声明synchronized啊public synchronized static void method()...; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵。。如果不想导致脏读又想用静态方法,那么就只好把它声明为同步方法了(同楼上),不过这样的后果是执行效率降低。但是,如果不调用静态成员变量的话,是不会导致脏读的。如果处理逻辑复杂,同步的时候cpu开销将会很大,这种情况下还不如用类实例方法。 1、用同步,效率低。2、不用静态方法,每个需调用的方法建立对象,再调用。这种方法也存在同步问题,但你的sychronized加在操作共享变量的语句部分,就不会太影响效率。如下:aa(){//第一种方法是在前面写sychronized;.......//sychronized{//第二种方法把同步用在这儿;//操作共享变量的语句;//}同步结束;...... } 一般只有在多线程的时候才会产生脏读问题。非多线程的话是不需要考虑的。使用实例方法的话,只要不是在同一个实例中同时调用,就不会造成脏读。在不同的类实例里面调用另一个类里面的非静态成员函数,那么每一个调用请求都需要先实例化一个目的类实例,每个类实例都有独立的内存空间,这样是不会脏读的。如果你想得到更加明确的大案或者研究更深层次的问题可以参考《java编程思想》,第二版的时候有专门的“多线程”一章,到第三版的时候变成“并发”一章了。内容基本一样的。 牺牲内存?还是牺牲cpu时间?鱼与熊掌不可得兼,设计程序的时候需要根据实际需要和性能瓶颈的实际所在好好斟酌。:) to wingtrace(暮寒.烟灰.风化物) ,多谢. 在什么情况下在同一个实例中同时调用? 关于Collections.shuffle()方法 eclispe怎么改变字体的大小 大家有做JAVA图形/图像的不~~?? 今天的湖人真假,呵呵 如何将System.out.println();的内容转向到座JTextField控件中 java 的简单问题 12 ??? p262 如何连接别人机器上的MySQL? 紧急求援:如何得到一double型数与一分数之积(结果的小数位数与double型数的小数位数相同) jbuilder7.0.ISO文件我不会用 关于java求助? 又遇最简单的hello程序运行问题! java.util.HashMap是什么类?有什么用?
2、不用静态方法,每个需调用的方法建立对象,再调用。这种方法也存在同步问题,但你的sychronized加在操作共享变量的语句部分,就不会太影响效率。如下:aa(){//第一种方法是在前面写sychronized;
....
...
//sychronized{//第二种方法把同步用在这儿;
//操作共享变量的语句;
//}同步结束;
...
...
}
多谢. 在什么情况下在同一个实例中同时调用?