I servizi Web preemptive consentono alle applicazioni di sfruttare appieno i computer multicore, ottenendo risposte più rapide per le richieste simultanee. Non è solo potente, è anche facile: dalle Proprietà del metodo di qualsiasi metodo, basta selezionare l’opzione “Può essere eseguito in processi preemptive” e il gioco è fatto!
Un metodo 4D può essere preemptive o meno a seconda delle opzioni di compilazione e dell’uso del linguaggio, come spiegato in questo post.
Per impostazione predefinita, quando il Web Services Server riceve più richieste, utilizza thread cooperativi per elaborarle, cioè tutti i processi in esecuzione su un singolo core. Ora, se si consente ai metodi di essere utilizzati in thread preemptive, 4D utilizza tutti i core disponibili per eseguire diversi lavori in parallelo.
Ad esempio, il video qui sotto mostra una riduzione del tempo di risposta diviso per tre:
Come si può vedere, la modalità preemptive aumenta la velocità delle richieste perché viene sfruttata la potenza di tutti i processori.
Nuovi comandi thread safe
Tutti i comandi del servizio Web sono ora thread-safe.
Comandi del server:
Comandi client: