primary advantage of multithreading