elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Alternar Threads Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alternar Threads Python  (Leído 2,051 veces)
Robertus98

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Alternar Threads Python
« en: 11 Julio 2014, 10:27 am »

Bueno, como daryo me explico la restriccion del Gil en los hilos en python, me puse con los procesos, pero no he obtenido buenos resultados y vuelvo a los threads pero ahora con "condition", pero me da un error de que no he adquirido el candado!

Código
  1. #!/usr/bin/env python
  2.  
  3. import socket
  4. from threading import *
  5. import time
  6.  
  7. resultado=0
  8. bloqueo=Lock()
  9.  
  10. def  aceptar_conexiones():
  11.    while True:
  12.        global bloqueo
  13.        # creamos el socket    
  14.        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)     # usamos esta funcion para mantener en eschucha el puerto que queramos este caso 8000
  15.        serversocket.bind(('localhost', 8000))
  16.        # mantenemos en escucha el servidor
  17.        serversocket.listen(3)
  18.        # aceptamos la conexion
  19.        clientsocket, clientaddress = serversocket.accept()
  20.        print 'Conexion desde: ', clientaddress # escribimos la ip del cliente
  21.        global resultado
  22.        resultado = resultado + 1
  23.        print "Es la conexión numero:", resultado
  24.        Condition().acquire()
  25.        Condition().notify()
  26.        Condition().release()
  27.  
  28. def recivir_datos():
  29.    Condition().acquire()
  30.    Condition().wait() # Espera por los datos
  31.    print "***A la espera de datos***"
  32.    if resultado != 0:
  33.        # mientras estamos conectados hace lo que este dentro del bucle
  34.        for i in range(5):
  35.            data = clientsocket.recv(1024) # recibimos datos del cliente
  36.            print 'cliente %s' % data # ponemos en pantalla lo que nos a dicho el cliente
  37.    Condition().release()
  38.  
  39. t = Thread(target=aceptar_conexiones())
  40. t.start()
  41. t1 = Thread(target=recivir_datos())
  42. t.start()
  43.  
  44. clientsocket.close() # cerramos el socket

Error:

Citar
Traceback (most recent call last):
  File "D:\Desktop\Servidor socket.py", line 39, in <module>
    t = Thread(target=aceptar_conexiones())
  File "D:\Desktop\Servidor socket.py", line 25, in aceptar_conexiones
    Condition().notify()
RuntimeError: cannot notify on un-acquired lock


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cargar CSS de acuerdo a la hora del día (alternar noche/día) « 1 2 »
Desarrollo Web
Cergath 10 8,104 Último mensaje 21 Febrero 2011, 04:54 am
por Sinedra
Alternar entre dos monitores con una combinación de teclas
Windows
Kurolox 3 3,366 Último mensaje 4 Mayo 2014, 19:19 pm
por RubenLL
Problema threads en python (setDaemon)
Scripting
Robertus98 4 2,973 Último mensaje 5 Julio 2014, 14:45 pm
por Robertus98
[Resuelto] Alternar los colores de los link.
Desarrollo Web
hackmastter 2 2,421 Último mensaje 3 Enero 2015, 02:39 am
por hackmastter
[Solucionado] Alternar 2 div con jquery
Desarrollo Web
Rata1960 2 3,176 Último mensaje 2 Diciembre 2017, 19:51 pm
por Rata1960
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines