单例和多线程同步访问没有什么直接关系。
解决方案 »
- jsp网站头像上传并编辑的方法
- struts框架问题
- 国际化的实现 问题
- webservice 的作业 各位大哥帮看看- JDeveloper SOAP/JDBC/XML Application
- 使用webwork标签是出现需要freemark
- soap 和webservice是什么关系呢?如何编译一组wsdl文件呢??
- 请问那里能够找到Java开源资料
- “维基百科”难道被封了,怎么一直不能上?
- 项目在A服务器 ,上传的图片要保存在B服务器
- CSDN 首发
- SpringMVC求指教100分!!sessionFactory.getCurrentSession().delete无法删除
- 如何高效率的实现以下的问题?
我是这样想的,比如有一个类似全局变量String
如果
class RUN implements Runnable{
private String s;
@Override
public void run(){
{
同步(s)
}
}
}
new Thread(new Run).start();
new Thread(new Run).start();
new Thread(new Run).start();还有一种解决思路,自己图省事
class Singleton {
private String s;
private final static Singleton instance = new Singleton();
private Singleton(){}
public Singleton getInstance(){
return instance;
}
public String getS(){}
public void setS(String s){this.s =s;}
}不同的线程里面代码{
Singleton.getInstance().setS(String);
Singleton.getInstance().getS()....
}
如果是有读有写的话就得加锁了.
2.在多线程环境中,单例模式可能会造成资源竞争,主要看在代码中是否使用属性(即在类中属于全局变量)),并且对属性有写操作,就可能会出现数据同步问题。
3.在多线程环境中,如果方法中使用类变量(即静态字段),并且对类变量有写操作,就可能会出现数据同步问题。
是的。有些资源不允许多线程访问的,必须要做同步