On Fri, Dec 19, 2014 at 9:41 PM, Firzhan Naqash <[email protected]> wrote:
> Hi Manu,
>
> By making the Instance variable *volatile*, you can over come this issue.
>
Umm... don't! You don't need singletons in most cases. if you unnecessarily
use singletons, and I happen to come across such code during reviews, I
will assume the author of the code to be a shitty programmer :D
>
> This also has been mentioned in the reference link that you pointed out
> ("Fixing
> Double-Checked Locking using Volatile")[1]
>
> class Foo {
>
>
> private volatile Instance instance = null;
>
> public Helper getInstance() {
> if (instance == null) {
> synchronized(MyClass.class) {
> if (instance == null)
> instance = new Instance();
> }
> }
> return instance;
> }
> }
>
>
> [1]
> http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
>
> Regards,
> Firzhan
>
> On Fri, Dec 19, 2014 at 7:00 PM, Gimantha Bandara <[email protected]>
> wrote:
>>
>> Hi,
>>
>> What about the singleton implementation using java enum? enum provides
>> inbuilt thread safety. But still it works only for jdk 6 or later versions.
>>
>> On Fri, Dec 19, 2014 at 6:09 PM, Udara Liyanage <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> Several places have several methods. However I like the way of having an
>>> inner static class. Java make sure a class is load only once, thus only one
>>> object is created.
>>>
>>>
>>> 1. class Singleton {
>>> 2. private static class InstanceHolder {
>>> 3. public static Singleton instance = new Singleton();
>>> 4. }
>>> 5.
>>> 6. public static Singleton getInstance() {
>>> 7. return InstanceHolder.instance;
>>> 8. }
>>> 9. }
>>>
>>>
>>> On Fri, Dec 19, 2014 at 3:19 PM, Manuranga Perera <[email protected]> wrote:
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Manuranga Perera <[email protected]>
>>>> Date: Fri, Dec 19, 2014 at 3:15 PM
>>>> Subject: What is the recommended way to initialize singleton
>>>> To: dev <[email protected]>
>>>> Cc: Afkham Azeez <[email protected]>, Sameera Jayasoma <[email protected]>,
>>>> Sameera Perera <[email protected]>, Ruchira Wageesha <[email protected]>
>>>>
>>>> Following kind of double locking code doesn't work [1] for singletons.
>>>> (please remove this if you see it in any place in the platform)
>>>>
>>>> if(instance == null) {
>>>> synchronized(MyClass.class) {
>>>> if(instance == null) {
>>>> instance = new MyClass();
>>>> }
>>>> }
>>>> }
>>>> return instance;
>>>>
>>>>
>>>> There are multiple ways we can do this right. What is the best practice
>>>> for defining singletons in unavoidable situations?
>>>>
>>>> [1]
>>>> http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
>>>>
>>>> --
>>>> With regards,
>>>> *Manu*ranga Perera.
>>>>
>>>> phone : 071 7 70 20 50
>>>> mail : [email protected]
>>>>
>>>>
>>>> --
>>>> With regards,
>>>> *Manu*ranga Perera.
>>>>
>>>> phone : 071 7 70 20 50
>>>> mail : [email protected]
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "WSO2 Engineering Group" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/a/wso2.com/d/optout.
>>>>
>>>
>>>
>>> --
>>>
>>> Udara Liyanage
>>> Software Engineer
>>> WSO2, Inc.: http://wso2.com
>>> lean. enterprise. middleware
>>>
>>> web: http://udaraliyanage.wordpress.com
>>> phone: +94 71 443 6897
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "WSO2 Engineering Group" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/a/wso2.com/d/optout.
>>>
>>
>>
>> --
>> Gimantha Bandara
>> Software Engineer
>> WSO2. Inc : http://wso2.com
>> Mobile : +94714961919
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "WSO2 Engineering Group" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/a/wso2.com/d/optout.
>>
>
--
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>*
*email: **[email protected]* <[email protected]>
* cell: +94 77 3320919blog: **http://blog.afkham.org*
<http://blog.afkham.org>
*twitter: **http://twitter.com/afkham_azeez*
<http://twitter.com/afkham_azeez>
*linked-in: **http://lk.linkedin.com/in/afkhamazeez
<http://lk.linkedin.com/in/afkhamazeez>*
*Lean . Enterprise . Middleware*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev