As per this document, when dealing with multiple threads we'd have to create one session for each thread:
https://cqdump.wordpress.com/2013/11/25/cq-development-anti-pattern-single-session-multiple-threads/
Does this still apply with the latest JackRabbit Oak used in 6.3 and above?