Hola a todos, os cuento, estoy programando una pequeña practica para una asignatura de Redes, consistente en crear un cliente y un servidor y por sockets enviarse informacion, para acceder a una base de datos y bueno....no os aburro.
El caso es que es en Python y necesito Semaforos, para k no puedan acceder a una Base de Datos un lector y un escritor a la vez, y estoy haciendo "mini-scripts" de python para probar y luego ya aplicarlo a la practica.
Se crear semaforos..pero para que solo pueda acceder un lector a la base de datos a la vez...pero necesito uno, para que puedan acceder "n" lectores. Me explico, necesito un semaforo que puedan entrar simultaneamente 10 lectores, ni uno mas....
tengo el siguiente codigo en python:
import socket, thread, syslog, time
def handler(socket):
global nclntlock,nclnt
nclntlock.acquire()
data=socket.recv(1024)
if (data=='hola'):
print 'cli1'
else:
print 'cli2'
if (data=='hola'):
time.sleep(10)
nclntlock.release()
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('localhost', 8000))
serversocket.listen(5)
nclnt = 2
nclntlock = thread.allocate_lock()
while 1:
clientsocket, clientaddress = serversocket.accept()
syslog.syslog('Incoming connection')
thread.start_new_thread(handler, (clientsocket,))
como ya os digo, la funcionalidad es una tonteria, solo lo kiero para probar semaforos, pero no se (ni encuentro en google) como hacer para crear un semaforo al k puedan acceder mas de un lector simulteaneamente.
Espero que alguien sepa responderme. Muchas Gracias!