1,既然只有一个实例,那是否可以说,哪怕多线程调用,它也会类似 同步块,同时只能供一个线程 使用,其他线程需要等待2,若 在静态方法内部 处理静态变量,或是 处理共享数据, 基于1的假设,那么 不可能有多个线程同时操作静态变量 或是共享数据阿,那如此说来就是 线程 安全的咯???

解决方案 »

  1.   

    我认为楼主发帖子的目的是想讨论什么时候加锁什么时候不用加锁而不是 如何加锁
    2楼的意思,我理解的是:“不管静态方法是否访问了静态成员都要加锁”不访问静态成员加锁,至少我认为是没必要的。你写一个XXXServlet继承了HttpServlet比如pulic class MyServlet extends HttpServlet{
        
        private String str = "";
        public void service(){
                /*如果你在这里修改str,那么必须加锁*/
        }
    }
    当然这个例子可能不恰当,因为service方法不是静态方法不过因为Servlet是单例的,所以一样可以起到说明效果