将 main() 中的注释逐行去掉,output 如下:
testNoAwait start...
delayedNoAwait 10 start ---
delayedNoAwait 10 completed ---
delayedNoAwait 5 start ---
delayedNoAwait 5 completed ---
delayedNoAwait 1 start ---
delayedNoAwait 1 completed ---
testNoAwait completed...
delayedNoAwait 1 task start...
delayedNoAwait 1 task completed.
delayedNoAwait 5 task start...
delayedNoAwait 5 task completed.
delayedNoAwait 10 task start...
delayedNoAwait 10 task completed.
Exited
testWithCallerAwait start...
delayedNoAwait 10 start ---
delayedNoAwait 10 completed ---
delayedNoAwait 5 start ---
delayedNoAwait 5 completed ---
delayedNoAwait 1 start ---
delayedNoAwait 1 completed ---
testWithCallerAwait completed...
delayedNoAwait 1 task start...
delayedNoAwait 1 task completed.
delayedNoAwait 5 task start...
delayedNoAwait 5 task completed.
delayedNoAwait 10 task start...
delayedNoAwait 10 task completed.
Exited
testWithCalleeAwait start...
delayedWithAwait 10 start ---
delayedWithAwait 5 start ---
delayedWithAwait 1 start ---
testWithCalleeAwait completed...
delayedWithAwait 1 task start...
delayedWithAwait 1 task completed.
delayedWithAwait 1 completed ---
delayedWithAwait 5 task start...
delayedWithAwait 5 task completed.
delayedWithAwait 5 completed ---
delayedWithAwait 10 task start...
delayedWithAwait 10 task completed.
delayedWithAwait 10 completed ---
Exited
testBothAwait start...
delayedWithAwait 10 start ---
delayedWithAwait 5 start ---
delayedWithAwait 1 start ---
testBothAwait completed...
delayedWithAwait 1 task start...
delayedWithAwait 1 task completed.
delayedWithAwait 1 completed ---
delayedWithAwait 5 task start...
delayedWithAwait 5 task completed.
delayedWithAwait 5 completed ---
delayedWithAwait 10 task start...
delayedWithAwait 10 task completed.
delayedWithAwait 10 completed ---
Exited
testAllAwait start...
delayedWithAwait 10 start ---
delayedWithAwait 10 task start...
delayedWithAwait 10 task completed.
delayedWithAwait 10 completed ---
delayedWithAwait 5 start ---
delayedWithAwait 5 task start...
delayedWithAwait 5 task completed.
delayedWithAwait 5 completed ---
delayedWithAwait 1 start ---
delayedWithAwait 1 task start...
delayedWithAwait 1 task completed.
delayedWithAwait 1 completed ---
testAllAwait completed...
Exited