我的期望是在程序中保存一个类似于全局变量的对象,但要防止多线程访问时的冲突.这仿佛是一个非常基础的要求.
如果用static Map map = new HashMap();然后在访问的方法里用synchronized(map){处理map},这样能不能起到作用?
对于同步,我的理解是这样的:通常的synchronized用法是修饰方法或者块,作用于块的时候一般是synchronized(this)或者是synchronized(A.class)的形式,防止多线程同时访问this的所有同步方法或类A的所有static同步方法.但是synchronized(map)是不是就是不能多线程同时访问map呢? 另外,static变量的生命周期是怎样的,是JVM关闭才结束的吗?网上某些文章说static变量的生命周期随着类的生命周期消亡,那类的生命周期是什么样的呢?
如果用static Map map = new HashMap();然后在访问的方法里用synchronized(map){处理map},这样能不能起到作用?
对于同步,我的理解是这样的:通常的synchronized用法是修饰方法或者块,作用于块的时候一般是synchronized(this)或者是synchronized(A.class)的形式,防止多线程同时访问this的所有同步方法或类A的所有static同步方法.但是synchronized(map)是不是就是不能多线程同时访问map呢? 另外,static变量的生命周期是怎样的,是JVM关闭才结束的吗?网上某些文章说static变量的生命周期随着类的生命周期消亡,那类的生命周期是什么样的呢?
解决方案 »
- action提交链接不对
- 关于Logger使用,消耗资源吗?
- sturts中的动态验证问题
- 急求,new FileInputStream(xfilename) 的路径 ,在线等!!
- 关于jasperreport参数的问题(成批打印的时候)
- 关于商业JSP的开发环境
- SSH连接sql server数据库
- 高分求教!怎样用JSP或applet显示拓扑图
- jsp<%! int a;%>,<% int a%>中定义变量有什么区别?
- 哪里有比较好的JSP论坛阿!
- js错误:The content of elements must consist of well-formed character data or marku
- tomcat6+mysql连接池
2、类的生命周期主要是在类被卸载的时候,这个主要是由于加载这个类的ClassLoader被释放了之后发生的。
谢谢!
ClassLoader被释放并不等于JVM结束是吗?一个JVM中可以有多个ClassLoader对吗?
要补一下ClassLoader了..