Desafiando las leyes de la computación (II)
¡Hola a todos de nuevo! Después de casi seis meses sin escribir, vuelvo al blog con una nueva meta: refutar el problema de la parada de Alan Turing . El problema de la parada enuncia, a grandes rasgos, que es imposible escribir un programa que detecte que otro se bloquearía en algún caso. Nosotros lo hemos complicado aún más: ¿Se puede hacer un programa que detecte que él mismo se ha bloqueado? ¡Y hemos encontrado la forma! La solución es muy sencilla: construimos una aplicación con dos hebras que se envían señales entre sí . Si una de ellas se bloquea, la otra se daría cuenta al enviar señales pero no recibir respuestas. Presentamos un programa que se divide en dos hebras: una de ellas dibuja figuras en memoria, y la otra representa en pantalla lo que la primera ha escrito. La hebra principal envía cada segundo una señal a la auxiliar, y ésta devuelve una respuesta. Si tarda más de medio segundo en hacerlo, la primera mostrará una alerta. En el programa encontramo...