WebDriver is not safe for multithreading.
Thread-safety is not in the code but it is in the browser bindings. They assume that there will be only one command at a time but on the other hand, instantiate one WebDriver instance for every thread but it will launch multiple browsers which will again consume lots of memory.