“Ejemplo de semáforo en Python” Código de respuesta

Ejemplo de semáforo en Python

import threading
import time
import logging

logging.basicConfig(level=logging.DEBUG,
                    format='(%(threadName)-9s) %(message)s',)

class ThreadPool(object):
    def __init__(self):
        super(ThreadPool, self).__init__()
        self.active = []
        self.lock = threading.Lock()
    def makeActive(self, name):
        with self.lock:
            self.active.append(name)
            logging.debug('Running: %s', self.active)
    def makeInactive(self, name):
        with self.lock:
            self.active.remove(name)
            logging.debug('Running: %s', self.active)

def f(s, pool):
    logging.debug('Waiting to join the pool')
    with s:
        name = threading.currentThread().getName()
        pool.makeActive(name)
        time.sleep(0.5)
        pool.makeInactive(name)

if __name__ == '__main__':
    pool = ThreadPool()
    s = threading.Semaphore(3)
    for i in range(10):
        t = threading.Thread(target=f, name='thread_'+str(i), args=(s, pool))
        t.start()
Weary Weasel

Semaphore en Python

import threading

sem = threading.Semaphore() # or sem = threading.Semaphore(value=n)
sem.acquire()
# Your code here
sem.release()
Happy Friend

Respuestas similares a “Ejemplo de semáforo en Python”

Preguntas similares a “Ejemplo de semáforo en Python”

Más respuestas relacionadas con “Ejemplo de semáforo en Python” en Python

Explore las respuestas de código populares por idioma

Explorar otros lenguajes de código