Question: I would like to know the behavior of the following.

basically i have a static ISessionFactory, and an application with 10 threads running and each of them would use ISessionFactory.OpenSession() to get an ISession. Would this cause any problem?

Answer: 
No. This is correct. You want to make sure you have a separate session for each thread.
This will not cause any problems, but make sure that:

* you don't 'leak' ISession instance (no other threads will ever have access to it)
* you properly Dispose session when you no longer need it

ISessionFactory on the other hand is thread safe and can be used from multiple threads without additional synchronization on your part.

```
using(ISession session = _sessionFactory.OpenSession()) {
    // use session making sure it will not become visible to other threads
}

```