Da 4D v11, il server di database e il server SQL utilizzano entrambi il multi-threading preemptive. A partire da 4D v13, anche il server Web in modalità statica utilizza il preemptive. Ora, con la v15 R5, anche il linguaggio 4D può essere eseguito in processi preemptive.
Le applicazioni compilate in 4D saranno ora in grado di sfruttare appieno i computer multi-core, in modo che la loro esecuzione sia più veloce e possano supportare un maggior numero di utenti connessi.
Qual è la differenza tra modalità cooperativa e preemptive?
La modalità cooperativa è pianificata dai processi e può utilizzare un solo core. La modalità preemptive è programmata dal sistema operativo e può utilizzare tutti i core disponibili.
Ecco un esempio con due processi e due core:
Come si esegue un metodo nei processi con prelazione?
Per impostazione predefinita, 4D esegue tutti i metodi del progetto in modalità cooperativa. Se si desidera beneficiare della funzione di modalità preemptive, il primo passo consiste nel dichiarare esplicitamente tutti i metodi che si desidera avviare in modalità preemptive.
Per farlo, esiste una nuova proprietà “Modalità di esecuzione” nelle proprietà del metodo. Sono disponibili 3 opzioni:
- Può essere eseguito in modalità preemptive
- Non può essere eseguito in modalità di prelazione
- Indifferente
Quando si apre il database con 4D v15 R5, tutti i metodi saranno impostati su Indifferente.
Come posso verificare che il mio codice possa essere eseguito in processi di prelazione?
Basta scrivere il codice e il compilatore controlla se il metodo è compatibile o incompatibile.
Per vedere un esempio, guardate questo video:
Se volete riprodurre voi stessi tutte le dimostrazioni precedenti, vi suggeriamo di scaricare il seguente database di esempio.
Come faccio a sapere quali comandi possono essere eseguiti nei processi con prelazione?
I comandi 4D che possono essere eseguiti in processi con prelazione sono indicati nella documentazione da una nuova icona. Questa icona si trova in alto a destra.
Nella v15 R5 è disponibile una prima serie di comandi. Verranno aggiunti altri comandi nelle successive release R.
Si consiglia di scaricare il seguente HDI. Abbiamo aggiornato il comando “Nome del comando” in modo da poter sapere se il comando può essere eseguito in modalità preemptive o meno.
Per ulteriori dettagli, consultare il manuale di aggiornamento di 4D v15 R5.