Original Post
Multithreading, AFAIK, is that each process may have multiple threads that are run independently (except when using synchronization). Each thread would be scheduled by the OS, almost like how processes are also scheduled by the OS. And multithreading has several advantages over multiprocessing. But the problem is that Multithreading != Parallelism, which is running several threads (or processes) in parallel. Multithreading and multiprocessing both work on single CPU, or single core setups... Is there a way to ensure that two threads are running in parallel on multicore systems?! Thats to say, if I create a new thread I want to be sure that this thread will instantly run in parallel with the parent thread, and not be subject to scheduling within the parent process?! If someone can point me to a multithreading tutorial that explains what exactly each each call will do in terms of scheduling, that would be great. Finally, there are two types of threads: Kernel threads, and user threads. Is there any tutorial on how to do multithreading without the load of system calls?!