今天看java多线程时,书中说对于在类中给2个以上的静态方法加synchronized时,那么线程不会同时进入这2个静态方法的,这是处于对类中静态变量的保护,但是线程可以执行类中的非静态方法,如果这个时候类中的非静态方法修改了静态变量的值,或者程序中的其他地方直接修改静态变量的值,那么对于静态变量的同步不就失败了吗?困惑中
解决方案 »
- DWR 的jsp页面中增删查改的script方法有谁知道啊?
- tomcat异常: could not execute query ,怎么处理?
- struts+spring+hibernate整合Servlet action is not available错误
- 一个运行时的小问题
- 为什么会有这个错误啊-------对于你来或许是举手之劳-------谢谢
- 请问学习EJB需要学习实体bean和消息bean吗?
- request.getParameter和request.getAttribute的异同???
- 一个关于程序结构的问题,如果我使用struts和hibernate,我struts的ActionForm的内容和hibernate里model对应的一个类的内容一样的,我怎
- hibernate的问题,请指点一二!
- javamail的程序,用单位的邮箱测试收邮件时挺好,用sina等公共邮箱就乱码
- hibenate不能批量更新 求解啊
- struts2 获取request里存放的对象属性
[这是处于对类中静态变量的保护]这个应该是针对没有非静态方法的类而言的,如果有非静态方法,正如LZ所理解的一样,因为非静态方法的同步是锁实例对象的,不能达到类的Class对象的同步
是这样的,java并没有说同步了就线程安全了,要充分同步才会线程安全,如何充分同步?就是对一个或一些变量的读与写全部同步才能达到!