Example #1
0
class ThreadPool(object):
    def __init__(self, num_workers=None, max_workers=None):
        self._threads = []
        self._queue = Queue()
        
        for _ in range(num_workers):
            self._threads.append(_PoolThread(self._queue))

    def execute(self, func, *args, **kwargs):
        self._queue.put(functools.partial(func, *args, **kwargs))
    
    def stop(self):
        for t in self._threads:
            t.stop()
Example #2
0
class QueueTestCase(unittest.TestCase):
    def setUp(self):
        self.queue = Queue()
        
    def testSetGet(self):
        
        self.queue.put(1)
        self.queue.put(2)
        self.queue.put(3)
        
        self.assertEqual(self.queue.get(), 1)
        self.assertEqual(self.queue.get(), 2)
        self.assertEqual(self.queue.get(), 3)
    
    def testSetGet2(self):
        
        self.queue.put(1)
        self.assertEqual(self.queue.get(), 1)
        
        self.queue.put(2)
        self.assertEqual(self.queue.get(), 2)
    
    def testEmpty(self):
        self.assertRaises(Empty, self.queue.get)