Generally speaking, the yield tells the operating system scheduler that at present the flow does not require CPU time and the scheduler can interrupt its execution before the time allotted to the flow expires and transfer control to another flow. The scheduler may ignore this statement and not transfer control to another thread.
You can use, for example, to increase the performance of any workflows of multi-threaded applications, thus reducing the performance of auxiliary threads. But it should be borne in mind that productivity will increase only when there are more working threads (really working, not idle!) Than the number of processor cores.
The benefit of this, IMHO, is dubious, and instead of yield , I personally would use thread priorities. In practice, I have not used it once.