Questions tagged «singleton»

一种设计模式,可确保确实存在特定类的一个应用程序范围的实例。四人制的创新设计模式之一。

9
C ++中高效的线程安全单例
单例课程的通常模式如下 static Foo &getInst() { static Foo *inst = NULL; if(inst == NULL) inst = new Foo(...); return *inst; } 但是,据我了解,此解决方案不是线程安全的,因为1)Foo的构造函数可能被多次调用(可能无关紧要),并且2)inst在返回到另一个线程之前可能未完全构建。 一种解决方案是在整个方法周围包裹一个互斥体,但是在我真正需要同步后很长一段时间内,我就要为同步开销付出代价。另一种方法是 static Foo &getInst() { static Foo *inst = NULL; if(inst == NULL) { pthread_mutex_lock(&mutex); if(inst == NULL) inst = new Foo(...); pthread_mutex_unlock(&mutex); } return *inst; } 这是正确的方法,还是我应该注意的陷阱?例如,是否可能发生任何静态初始化顺序问题,即inst总是在首次调用getInst时始终保证为NULL?

8
Android中的Singleton
我已遵循此链接,并成功在Android中制作了singleton类。 http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/ 问题是我想要一个对象。像我有活动A和活动B。在活动AI中,从Singleton访问对象class。我使用该对象并对它进行了一些更改。 当我移至活动B并从Singleton类访问该对象时,它给了我初始化的对象,并且不保留我在活动A中所做的更改。是否还有其他方法可以保存更改?请高手帮帮我。这是MainActivity public class MainActivity extends Activity { protected MyApplication app; private OnClickListener btn2=new OnClickListener() { @Override public void onClick(View arg0) { Intent intent=new Intent(MainActivity.this,NextActivity.class); startActivity(intent); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Get the application instance app = (MyApplication)getApplication(); // Call a custom application …

6
如何在不使用<mutex>的情况下在C ++ 11中实现多线程安全单例
既然C ++ 11具有多线程功能,我想知道在不使用互斥对象的情况下实现延迟初始化单例的正确方法是什么(出于性能原因)。我想到了这一点,但是tbh Im并不太擅长编写无锁代码,因此Im正在寻找更好的解决方案。 // ConsoleApplication1.cpp : Defines the entry point for the console application. // # include &lt;atomic&gt; # include &lt;thread&gt; # include &lt;string&gt; # include &lt;iostream&gt; using namespace std; class Singleton { public: Singleton() { } static bool isInitialized() { return (flag==2); } static bool initizalize(const string&amp; name_) …

23
单身人士:好的设计还是拐杖?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 单例是一个备受争议的设计模式,因此我对Stack Overflow社区对它们的想法很感兴趣。 请提供您提出意见的理由,而不仅仅是“单字适合懒惰的程序员!” 尽管反对使用Singletons,但关于此问题的文章还是不错的: scienceninja.com:performant-singletons。 有人在上面有其他好文章吗?也许支持辛格尔顿?

1
Spring中的作用域代理是什么?
正如我们所知道Spring使用代理来增加功能(@Transactional和@Scheduled举例)。有两种选择-使用JDK动态代理(该类必须实现非空接口),或使用CGLIB代码生成器生成子类。我一直认为proxyMode允许我在JDK动态代理和CGLIB之间进行选择。 但是我能够创建一个示例,说明我的假设是错误的: 情况1: 单身人士: @Service public class MyBeanA { @Autowired private MyBeanB myBeanB; public void foo() { System.out.println(myBeanB.getCounter()); } public MyBeanB getMyBeanB() { return myBeanB; } } 原型: @Service @Scope(value = "prototype") public class MyBeanB { private static final AtomicLong COUNTER = new AtomicLong(0); private Long index; public MyBeanB() { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.