Desde 4D v11, el servidor de la base de datos y el servidor SQL utilizan el multithreading preventivo. A partir de 4D v13, el servidor web en modo estático también utiliza preemptive. Ahora con v15 R5, el lenguaje 4D también puede ejecutarse en procesos preemptivos.
Sus aplicaciones compiladas en 4D podrán ahora aprovechar al máximo los ordenadores multi-núcleo para que su ejecución sea más rápida y puedan soportar más usuarios conectados.
¿Cuál es la diferencia entre el modo cooperativo y el preventivo?
El modo cooperativo está programado por los procesos y sólo puede utilizar un núcleo. El modo preventivo está programado por el sistema operativo y puede utilizar todos los núcleos disponibles.
Aquí un ejemplo con dos procesos y dos núcleos:
¿Cómo se ejecuta un método en los procesos preventivos?
Por defecto, 4D ejecutará todos los métodos del proyecto en modo cooperativo. Si quiere beneficiarse de la función de modo preventivo, el primer paso consiste en declarar explícitamente todos los métodos que quiere que se inicien en modo preventivo.
Para ello, existe una nueva propiedad «Modo de ejecución» en las propiedades del método. Tiene 3 opciones:
- Puede ejecutarse en modo preventivo
- No se puede ejecutar en modo preventivo
- Indiferente
Cuando abra su base de datos con 4D v15 R5, todos sus métodos estarán en modo Indiferente.
¿Cómo compruebo que mi código puede ejecutarse en procesos preventivos?
Simplemente escriba su código y el compilador comprobará si el método es compatible o incompatible.
Para ver un ejemplo, mira este vídeo:
Si quieres reproducir tú mismo todas las demostraciones anteriores, te sugerimos que descargues la siguiente base de datos de ejemplo.
¿Cómo puedo saber qué comandos se pueden ejecutar en procesos preferentes?
Los comandos de 4D que pueden ejecutarse en procesos preventivos se indican en la documentación mediante un nuevo icono. Este icono se encuentra en la parte superior derecha.
En la v15 R5, está disponible un primer conjunto de comandos. Añadiremos más comandos en las siguientes versiones R.
Le sugerimos que descargue el siguiente IDH. Hemos actualizado el comando «Nombre del comando» para que pueda saber si el comando puede ser ejecutado en modo preventivo o no.
Para más detalles, por favor, eche un vistazo al manual de actualización de 4D v15 R5.