@@ -17,28 +17,26 @@ def get_function_name(func: Callable) -> str:
17
17
18
18
async def function_a () -> None :
19
19
await sleep_program (1 , name = "Function A" )
20
- print ("function a finished" )
21
20
22
21
23
22
async def function_b () -> None :
24
23
await sleep_program (2 , name = "Function B" )
25
- print ("function b finished" )
26
24
27
25
28
26
async def function_c () -> None :
29
27
await sleep_program (3 , name = "Function C" )
30
- print ("function c finished" )
31
28
32
29
33
- def func_d () -> None :
34
- print ("function d started" )
35
- time .sleep (1 )
36
- print ("function d finished" )
30
+ async def function_d () -> None :
31
+ await sleep_program (1 , name = "Function D" )
32
+
33
+
34
+ async def function_e () -> None :
35
+ await sleep_program (11 , name = "Function E" )
37
36
38
37
39
38
async def execute_void_async_functions (funcs : Iterable [VoidAsyncFunction ]) -> None :
40
- for func in funcs :
41
- await func ()
39
+ await asyncio .gather (* [func () for func in funcs ])
42
40
43
41
44
42
async def sleep_program (seconds : Number , name : str = "Sleep" ) -> None :
@@ -52,14 +50,26 @@ async def sleep_program(seconds: Number, name: str = "Sleep") -> None:
52
50
print (f"{ current_name } program finished" )
53
51
54
52
53
+ async def goodbye () -> None :
54
+ print ("¡Adiós, mundo!" )
55
+
56
+
55
57
async def main () -> None :
56
58
await sleep_program (5 )
57
59
print ("¡Hola, mundo!" )
58
60
59
- await execute_void_async_functions ([function_c , function_b , function_a ])
60
- func_d ()
61
-
62
- print ("¡Adiós, mundo!" )
61
+ await execute_void_async_functions (
62
+ [
63
+ function_e ,
64
+ function_c ,
65
+ function_b ,
66
+ function_a ,
67
+ function_d ,
68
+ goodbye ,
69
+ ]
70
+ )
71
+
72
+ (lambda : print ("¡Adiós" ))()
63
73
64
74
65
75
if __name__ == "__main__" :
0 commit comments