may
may copied to clipboard
support blocking API
we can use this API to wrap the code that would run for a long time or would block a thread.
when the API is invoked, the worker thread would become a normal thread, and it will kick another thread to continue scheduling on the worker queue.
when the API is invoked in the IO thread, it would first re-scheduling to a worker thread.