Quick actions

cmd+k|ctrl+k

Navigation

Languages

Multiprocessing Functions

Snippet info

Language

Python

Visibility

public

Author

gordio

Created

2018-10-17T15:48:25Z

Updated

2018-10-17T15:48:25Z

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import multiprocessing as mp


def lambda_func(name):
    print("Hello %s" % name)


def lambda_func2(name):
    print("Super Hello %s" % name)


def mp_worker(mp_q):
    while True:
        if mp_q.empty():
            time.sleep(1)
            continue

        msg = mp_q.get()

        if str(type(msg)) == "<class 'function'>":  # И таааак сойдет…
            msg("<name> from sub-proccess")

        if msg is None:
            break  # Stop that loop


def main():
    mp_q = mp.Queue()
    proc = mp.Process(target=mp_worker, args=(mp_q, ))
    proc.start()

    time.sleep(1)
    mp_q.put(lambda_func)
    time.sleep(2)
    mp_q.put(lambda_func2)
    time.sleep(1)
    mp_q.put(None)


if __name__ == '__main__':
    main()
INFO