Inhaltsverzeichnis
Tradicionalmente, el envío de un mensaje se trata como una llamada de procedimiento, en la que el la ejecución del objeto que llama se bloquea hasta que se devuelve una respuesta. Sin embargo, podemos extender este modelo simplemente para ver cada objeto como un ejecutable concurrente programa, con actividad que comienza cuando se crea el objeto y continúa incluso cuando se envía un mensaje a otro objeto (a menos que se requiera la respuesta para más Procesando). En este modelo, puede haber muchos objetos (simultáneos) ejecutándose al mismo tiempo. Por supuesto, esto introduce problemas asociados con la asignación de recursos. cación, etc. pero no más que en cualquier sistema concurrente. Una implicación del modelo de objetos concurrentes es que los objetos son más grandes que en el enfoque tradicional de un solo hilo de ejecución, debido a la sobrecarga de tener cada objeto como un hilo de ejecución separado. Gastos generales como la necesidad de un programador para manejar estos hilos de ejecución y mecanismos de asignación de recursos significa que no es factible tener enteros, caracteres, etc. como procesos separados. 29.8 Hilos V Procesos Como parte de esta discusión, es útil comprender qué se entiende por proceso. Un proceso es una instancia de un programa de computadora que está siendo ejecutado por el Sistema operativo. Cualquier proceso tiene tres elementos clave; el programa que se está ejecutando, los datos utilizados por ese programa (como las variables utilizadas por el programa) y el estado del proceso (también conocido como el contexto de ejecución del programa). Un subproceso (Python) es un proceso ligero preventivo. Se considera que un subproceso es preventivo porque cada subproceso tiene la oportunidad de ejecutar como el hilo principal en algún momento. Cuando un hilo llega a ejecutarse, lo hará ejecutar hasta • finalización, • hasta que esté esperando algún tipo de E/S (Entrada/Salida), • duerme por un período de tiempo, • se ha ejecutado durante 15 ms (el umbral actual en Python 3). Si el subproceso no se ha completado cuando ocurre una de las situaciones anteriores, entonces se deja de ser el hilo de ejecución y se ejecutará otro hilo en su lugar. Este significa que un subproceso se puede interrumpir en medio de la realización de una serie de pasos relacionados. Un subproceso se considera un proceso ligero porque no posee su propio espacio de direcciones y no es tratado como una entidad separada por el host operativo sistema. En cambio, existe dentro de un proceso de una sola máquina que usa la misma dirección espacio. Es útil tener una idea clara de la diferencia entre un hilo (ejecutándose dentro de un proceso de una sola máquina) y un sistema multiproceso que utiliza procesos separados en el hardware subyacente. 29.7 Orientación a Objetos y Concurrencia 343
popular post
Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
WeiterlesenTemas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Weiterlesen• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.
Weiterlesen