不会。阻塞是指调用方必须等待被调用返回后才能继续执行下一条指令。
你应该把线程想象成生产流水线,流水线本身是不能执行操作的,它只是预设了一定数量的加工点,OS会驱动流水线前进,同步调用即是加工点必须在流水线上完成,那么没有完成之前,这条流水线是停滞的,它无法前进到下一个加工点;异步调用即是加工点只是标记该工序应该在另一条生产流水线上完成,当前的流水线可以继续前进到下一个加工点,而不用等待另一条流水线上的加工完成。
同学,这个是操作系统级别的问题,操作系统已经处理了该功能。在同步完成后,会有个回调函数来激活主线程的运行。。。
到底会不会启用新线程那个也说不定。
这得看什么应用了,一般很少见。不过我还是常见 BeginXXX之后立马来个EndXXX这样写的,那样就会在阻塞当前线程同时又用另外线程跑。
话说同步一般也不是线程被阻塞,而是UI反应阻塞,主线程在跑其他事情,无法处理新的输入···
不过同步异步都是分 CPU密集型和IO密集型,两者情况不同,具体看看书比较好:)