hibernate的sessionFactory问题

hibernate的sessionFactory如果用单例得到的话是对同一个线程单例,在servlet中sessionFactory是放在哪里的?

[code="java"]public class TestSingle {
public static void main(String args[]){
new Thread(){
public void run(){
for(int i=0;i System.out.println("1-->"+SingleClass.getInstance());
try{
Thread.sleep(50);
}catch(Exception e){
e.printStackTrace();
}
}
}
}.start();

    new Thread(){
        public void run(){
            for(int i=0;i<10;i++){
              System.out.println("2-->"+SingleClass.getInstance());
               try{
                  Thread.sleep(50);
              }catch(Exception e){
                  e.printStackTrace();
              }
            }
        }
    }.start();
}

}

class SingleClass{
private static final SingleClass singleClass=new SingleClass();

public static SingleClass getInstance(){
    return singleClass;
}

}[/code]

结果是:
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
1-->com.infoexplorer.SingleClass@10b30a7
2-->com.infoexplorer.SingleClass@10b30a7
证明确实两个线程调用的同一个SingleClass对象

楼主思想就错了,单例 默认就是当前jvm范围内单例,而无论有多少个线程,都是在同一个jvm下。所以sessionFactory用单例模式就可以了。
正因为单例模式不是每个线程对应一个对象,所有线程公用一个对象,所以才出现同步问题