<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Сколько нужно потоков для обработки пользовательских запросов или крайности при использовании Singleton</title>
	<link>http://www.javenue.info/post/83</link>
	<description>Блог разработчика о Java и родственных технологиях</description>
	<pubDate>Fri, 10 Sep 2010 05:00:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>By: artemv</title>
		<link>http://www.javenue.info/post/83#comment-63843</link>
		<author>artemv</author>
		<pubDate>Sun, 17 Jan 2010 17:37:38 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-63843</guid>
		<description>@cleam предложил луч?ий вариант*(только как-то робко и final забыл).

*потому что: 
- он threadsafe(jvm гарантирует - только один поток загрузит внутренний класс ? инициализирует статические поля)
- он lazy-loading(внутренний класс не загрузится пока к нему не обрати?ься)
- он прост.</description>
		<content:encoded><![CDATA[<p>@cleam предложил луч?ий вариант*(только как-то робко и final забыл).</p>
<p>*потому что:<br />
- он threadsafe(jvm гарантирует - только один поток загрузит внутренний класс ? инициализирует статические поля)<br />
- он lazy-loading(внутренний класс не загрузится пока к нему не обрати?ься)<br />
- он прост.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ivan</title>
		<link>http://www.javenue.info/post/83#comment-61312</link>
		<author>ivan</author>
		<pubDate>Tue, 03 Nov 2009 14:26:16 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-61312</guid>
		<description>Очень уж для меня все это сложно пока выглядит. Почему на программиста не по?ел учиться, жалею теперь. А самому, по книжкам, усидчивости не хватает заниматься. Тяжело без наставника.</description>
		<content:encoded><![CDATA[<p>Очень уж для меня все это сложно пока выглядит. Почему на программиста не по?ел учиться, жалею теперь. А самому, по книжкам, усидчивости не хватает заниматься. Тяжело без наставника.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Владимир</title>
		<link>http://www.javenue.info/post/83#comment-60454</link>
		<author>Владимир</author>
		<pubDate>Fri, 09 Oct 2009 12:18:25 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-60454</guid>
		<description>А такой вариант ( без volatile ) будет работать? &lt;code&gt;  public final class Singleton {
    private static Singleton instance;
    private Singleton() {
    }
    public static Singleton getInstance() {
      if (instance == null) {
        return innerGetInstance();
      } else
      return instance;
    }
    private static synchronized Singleton innerGetInstance() {
      if (instance == null) {
        instance = new Singleton();
      }
      return instance;
    }
  }
&lt;/code&gt; 
? можно поподробнее про public enum Singleton { //Реальный сингельтон
INSTANCE;
}  ( куда писать реализацию класса и когда он будет создаваться? )</description>
		<content:encoded><![CDATA[<p>А такой вариант ( без volatile ) будет работать? <code>  public final class Singleton {<br />
    private static Singleton instance;<br />
    private Singleton() {<br />
    }<br />
    public static Singleton getInstance() {<br />
      if (instance == null) {<br />
        return innerGetInstance();<br />
      } else<br />
      return instance;<br />
    }<br />
    private static synchronized Singleton innerGetInstance() {<br />
      if (instance == null) {<br />
        instance = new Singleton();<br />
      }<br />
      return instance;<br />
    }<br />
  }<br />
</code><br />
? можно поподробнее про public enum Singleton { //Реальный сингельтон<br />
INSTANCE;<br />
}  ( куда писать реализацию класса и когда он будет создаваться? )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fox</title>
		<link>http://www.javenue.info/post/83#comment-51056</link>
		<author>Fox</author>
		<pubDate>Wed, 22 Apr 2009 20:02:04 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-51056</guid>
		<description>Так это-ж Jetty co своим NIO... а Tomcat то 5000 потоков создаст(нет не создаст :) в реальности) так причом тут сингельтон...
А если говорить о сингельтонах то с приведёнными вы?е примерами есть несколько проблем такие как -
AccessibleObject.setAccessible и возможно проблема сериализации...

Следует просто писать

public enum Singleton {  //Реальный сингельтон
INSTANCE;
}

Удачи</description>
		<content:encoded><![CDATA[<p>Так это-ж Jetty co своим NIO&#8230; а Tomcat то 5000 потоков создаст(нет не создаст <img src='http://www.javenue.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> в реальности) так причом тут сингельтон&#8230;<br />
А если говорить о сингельтонах то с приведёнными вы?е примерами есть несколько проблем такие как -<br />
AccessibleObject.setAccessible и возможно проблема сериализации&#8230;</p>
<p>Следует просто писать</p>
<p>public enum Singleton {  //Реальный сингельтон<br />
INSTANCE;<br />
}</p>
<p>Удачи</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cleam</title>
		<link>http://www.javenue.info/post/83#comment-50942</link>
		<author>cleam</author>
		<pubDate>Tue, 21 Apr 2009 15:59:44 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-50942</guid>
		<description>Ещё один вариант:

public class Singleton {
    private static class InstanceHolder {
        private static Singleton instance = new Singleton();
    }
    
    public static Singleton getInstance() {
        return InstanceHolder.instance;
    }
}

Ну а вообще синглтоны зло, да.</description>
		<content:encoded><![CDATA[<p>Ещё один вариант:</p>
<p>public class Singleton {<br />
    private static class InstanceHolder {<br />
        private static Singleton instance = new Singleton();<br />
    }</p>
<p>    public static Singleton getInstance() {<br />
        return InstanceHolder.instance;<br />
    }<br />
}</p>
<p>Ну а вообще синглтоны зло, да.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ddfsqwe</title>
		<link>http://www.javenue.info/post/83#comment-50389</link>
		<author>ddfsqwe</author>
		<pubDate>Wed, 15 Apr 2009 13:07:24 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-50389</guid>
		<description>Спасибо, действительно интересно)</description>
		<content:encoded><![CDATA[<p>Спасибо, действительно интересно)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: c0nst</title>
		<link>http://www.javenue.info/post/83#comment-48456</link>
		<author>c0nst</author>
		<pubDate>Wed, 25 Mar 2009 21:59:33 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-48456</guid>
		<description>На счет:
private static Singleton instance = new Singleton();
Если немного усложнить пример и добавить какую-то константу в класс или еще что-то, то ленивость теряется. ?дея как раз в том, чтобы загрузка класса не влекла за собой создание инстанса.</description>
		<content:encoded><![CDATA[<p>На счет:<br />
private static Singleton instance = new Singleton();<br />
Если немного усложнить пример и добавить какую-то константу в класс или еще что-то, то ленивость теряется. ?дея как раз в том, чтобы загрузка класса не влекла за собой создание инстанса.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: denis_ka</title>
		<link>http://www.javenue.info/post/83#comment-48436</link>
		<author>denis_ka</author>
		<pubDate>Wed, 25 Mar 2009 17:26:22 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-48436</guid>
		<description>так как класс загружается при первом обращении к нему. и следовательно "сме?ная реализация", с идеологией атомарной загрузки вложенного класса, просто избыточна и не нужна.</description>
		<content:encoded><![CDATA[<p>так как класс загружается при первом обращении к нему. и следовательно &#8220;сме?ная реализация&#8221;, с идеологией атомарной загрузки вложенного класса, просто избыточна и не нужна.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: denis_ka</title>
		<link>http://www.javenue.info/post/83#comment-48435</link>
		<author>denis_ka</author>
		<pubDate>Wed, 25 Mar 2009 17:22:43 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-48435</guid>
		<description>&#62;что-то не видно смысла в сме?ной реализации...

в таком методе тоже ленивая инициализация: 

class Singleton{
  private static Singleton instance = new Singleton();

  private Singleton() {
  }

  public static Singleton getInstance() {
    return instance;
  }
}</description>
		<content:encoded><![CDATA[<p>&gt;что-то не видно смысла в сме?ной реализации&#8230;</p>
<p>в таком методе тоже ленивая инициализация: </p>
<p>class Singleton{<br />
  private static Singleton instance = new Singleton();</p>
<p>  private Singleton() {<br />
  }</p>
<p>  public static Singleton getInstance() {<br />
    return instance;<br />
  }<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: c0nst</title>
		<link>http://www.javenue.info/post/83#comment-48189</link>
		<author>c0nst</author>
		<pubDate>Mon, 23 Mar 2009 12:36:16 +0000</pubDate>
		<guid>http://www.javenue.info/post/83#comment-48189</guid>
		<description>Не согласен.  
?нстанс самого синглтона будет создан только во время первого вызова метода getInstance().</description>
		<content:encoded><![CDATA[<p>Не согласен.<br />
?нстанс самого синглтона будет создан только во время первого вызова метода getInstance().</p>
]]></content:encoded>
	</item>
</channel>
</rss>
