From bbb0dd8ee88a1a69c56bd203e45be699f246cb1a Mon Sep 17 00:00:00 2001 From: Egor Pichkur Date: Thu, 28 Feb 2019 05:08:30 +0300 Subject: [PATCH 1/2] Homework 4: multiprocessing --- homework4.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 homework4.py diff --git a/homework4.py b/homework4.py new file mode 100644 index 0000000..846b90b --- /dev/null +++ b/homework4.py @@ -0,0 +1,48 @@ +"""Homework 4: Multiprocessing""" + +from multiprocessing import Process +from multiprocessing import Lock + + +class SyncedProcess(Process): + """My class for multiprocessing work""" + + even_lock = Lock() + odd_lock = Lock() + + def __init__(self, process_name): + super().__init__() + + self.process_name = process_name + + if self.process_name == 'even': + self.nums = [x for x in range(101) if x % 2 == 0] + self.odd_lock.acquire() + else: + self.nums = [x for x in range(101) if x % 2 == 1] + + def run(self): + """Implementation of process' activity""" + + for num in self.nums: + if self.process_name == 'even': + self.even_lock.acquire() + print(num) + self.odd_lock.release() + else: + self.odd_lock.acquire() + print(num) + self.even_lock.release() + + +if __name__ == '__main__': + processes = [] + + processes.append(SyncedProcess('odd')) + processes.append(SyncedProcess('even')) + + for pr in processes: + pr.start() + + for pr in processes: + pr.join() From 33b546a69c5ed4b5ddd6236be43c0bda4378765a Mon Sep 17 00:00:00 2001 From: Egor Pichkur Date: Thu, 28 Feb 2019 05:12:05 +0300 Subject: [PATCH 2/2] Fixed flake8 issues --- homework4.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework4.py b/homework4.py index 846b90b..6c15210 100644 --- a/homework4.py +++ b/homework4.py @@ -1,7 +1,7 @@ """Homework 4: Multiprocessing""" -from multiprocessing import Process from multiprocessing import Lock +from multiprocessing import Process class SyncedProcess(Process):