Perfectly support multithreading