Skip to content

Commit fef3bc5

Browse files
committed
Multiprocessing\S03-Sub-process\S03-01-Process-Class-override-subprocess
1 parent 26855b4 commit fef3bc5

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import multiprocessing
2+
import time
3+
4+
5+
def some_task(name, delay):
6+
print(f"Process {name} Started.")
7+
time.sleep(delay)
8+
print(f"Process {name} Finished.")
9+
10+
11+
# Customize Process
12+
class SomeTaskProcess(multiprocessing.Process):
13+
def __init__(self, name, delay):
14+
super().__init__()
15+
self.name = name
16+
self.delay = delay
17+
18+
19+
def run(self):
20+
some_task(self.name, self.delay)
21+
22+
23+
if __name__ == "__main__":
24+
25+
start = time.perf_counter()
26+
print("CPU Count: ", multiprocessing.cpu_count())
27+
28+
# p1 = multiprocessing.Process(target=some_task, args=("One", ))
29+
# p2 = multiprocessing.Process(target=some_task, args=("Two", ))
30+
p1 = SomeTaskProcess("One", 3)
31+
p2 = SomeTaskProcess("Two", 8)
32+
33+
# start Processes
34+
p1.start()
35+
p2.start()
36+
37+
# join Processes
38+
p1.join()
39+
p2.join()
40+
41+
end = time.perf_counter()
42+
exe_time = end - start
43+
print(f"Execution Time: {exe_time} sec")

0 commit comments

Comments
 (0)