#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import datetime
import multiprocessing
from multiprocessing import Process, Manager, Lock, Queue
from threading import Thread
import ctypes, os
import select
class Ethread(Thread):
def __init__(self, dic, print1):
super(Ethread, self).__init__()
self.dict = dic
self.print1 = print1
def run(self):
while True:
if self.dict:
self.print1()
if len(self.dict) >= 10:
break
class EPool(Process):
def __init__(self, queue):
super(EPool, self).__init__()
self.dict = {}
self.queue = queue
def emit(self, msg):
self.dict[msg] = msg
def print1(self):
print("%s" %self.dict)
def run(self):
self.thread = Ethread(self.dict, self.print1)
self.thread.start()
while True:
try:
msg = self.queue.get()
self.emit(msg)
except Exception as e:
print(e)
class EProcess(Process):
def __init__(self, queue):
super(EProcess, self).__init__()
self.queue = queue
def run(self):
for i in range(10):
self.queue.put(i)
def main():
queue = multiprocessing.Queue()
pool = EPool(queue)
pool.start()
process = EProcess(queue)
process.start()
main()
结果:
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}