If you create a stream, by default you do not have a control on which it will work. The operating system scheduling algorithm will take care of this and is pretty good at its work. However, you can use SetThreadAffinity WinAPI to specify the logical kernels that are allowed to start the thread.
Do not do this if you have no good reason. MSDN Quote:
Configuring a merge mask for a process or thread can result in threads getting less processor time because the system is not allowed to start threads on specific processors. In most cases, it is best to let the system select an available processor.
source share