Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
otros:algoritmos [2013/03/09 13:03] alfred [Productor - consumidor] |
otros:algoritmos [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 109: | Línea 109: | ||
| import threading | import threading | ||
| import Queue | import Queue | ||
| - | |||
| class Producer(threading.Thread): | class Producer(threading.Thread): | ||
| Línea 120: | Línea 119: | ||
| while True: | while True: | ||
| item = self.in_queue.get() | item = self.in_queue.get() | ||
| - | |||
| result = 'You should be doing work.' | result = 'You should be doing work.' | ||
| self.out_queue.put(result) | self.out_queue.put(result) | ||
| - | |||
| self.in_queue.task_done() | self.in_queue.task_done() | ||
| Línea 134: | Línea 131: | ||
| while True: | while True: | ||
| item = self.out_queue.get() | item = self.out_queue.get() | ||
| - | |||
| result = 'This is your awesome output.' | result = 'This is your awesome output.' | ||
| - | |||
| self.out_queue.task_done() | self.out_queue.task_done() | ||
| if __name__ == '__main__': | if __name__ == '__main__': | ||
| - | |||
| item_list = ['item1', 'item2', 'item3'] | item_list = ['item1', 'item2', 'item3'] | ||
| in_queue = Queue.Queue() | in_queue = Queue.Queue() | ||
| out_queue = Queue.Queue() | out_queue = Queue.Queue() | ||
| - | |||
| for i in xrange(len(item_list)): | for i in xrange(len(item_list)): | ||
| t = Producer(in_queue, out_queue) | t = Producer(in_queue, out_queue) | ||
| t.daemon = True | t.daemon = True | ||
| t.start() | t.start() | ||
| - | |||
| for item in item_list: | for item in item_list: | ||
| in_queue.put(item) | in_queue.put(item) | ||
| - | |||
| - | |||
| for i in xrange(len(item_list)): | for i in xrange(len(item_list)): | ||
| t = Consumer(out_queue) | t = Consumer(out_queue) | ||
| t.daemon = True | t.daemon = True | ||
| t.start() | t.start() | ||
| - | |||
| in_queue.join() | in_queue.join() | ||
| out_queue.join() | out_queue.join() | ||
| Línea 201: | Línea 190: | ||
| </code> | </code> | ||
| + | ==== Potencia de 10 ==== | ||
| + | <code> | ||
| + | i = 1; | ||
| + | while((i * 10) < x) | ||
| + | i *= 10; | ||
| + | </code> | ||
| ==== Movimiento por array circular ==== | ==== Movimiento por array circular ==== | ||
| * C | * C | ||