Quina diferència hi ha entre asincrònics i síncrons de Java?


Resposta 1:

El codi Java executa línia per línia. Suposem que si esteu llegint un conjunt de fitxers grans amb detalls dels exàmens de les escoles de tot l'estat, on un fitxer té dades dels resultats dels exàmens d'una escola.

A més, voleu ordenar els registres dels estudiants segons les notes totals per classe i es mostren a la IU. Si escriviu això com a codi java normal (és a dir, sense multi threading), cada línia s'executaria una per una. No podeu processar un altre fitxer si un fitxer encara no s'ha processat. Si voleu fer qualsevol operació paral·lela, per exemple: Crear connexió de DB, no ho podeu fer, perquè només passarà el procés de fitxer. Aquest comportament seqüencial es pot denominar com a comportament síncron.

Ara podeu llegir i processar molt bé un subgrup de fitxers sense que s’interrompi el processament d’altres fitxers executant tasques de forma paral·lela (alias fils). A aquests fenòmens se’ls denomina multithreading. Es pot notificar a la persona que truca (qui necessita el resultat) quan el processament estigui completat i, a continuació, es pot utilitzar per obtenir més processaments. Per tant, l'execució que es produeix de forma independent, sense interrompre el flux normal d'execució s'anomena trucada asíncrona.

Hi ha un parell de maneres en què podeu fer trucades asíncrones a Java segons el vostre requisit. (Però controlar-los bé és extremadament important i complicat de vegades.)

A més de la interfície Runnable (que s'utilitza per executar tasques però no retorna res a la persona que truca), podeu llegir sobre la interfície de fitxers i els objectes futurs a Java. (Que pot retornar dades a la persona que truca)

Aquest fragment és del bloc Oracle

Ús de Callable per obtenir resultats de resultats de les runnables


Resposta 2:

Execució asíncrona vs. sincrònica

La diferència entre execució síncrona i asíncrona pot semblar una mica confusa al principi. L'execució de programes en la majoria dels llenguatges d'alt nivell és generalment senzilla. El programa s'inicia a la primera línia del codi font i cada línia de codi s'executa seqüencialment després. Prou fàcil.

L’execució sincrònica del programa és una mica similar a l’anterior. El vostre programa s’executa línia per línia, una línia a la vegada. Cada vegada que s’anomena una funció, l’execució del programa s’espera fins que aquesta funció torni abans de continuar a la següent línia de codi.

Aquest mètode d’execució pot tenir ramificacions indesitjables. Suposem que una funció està cridada a iniciar un procés que consumeix temps. Què passa si voleu aturar el llarg procés? Amb l'execució síncrona, el programa queda "bloquejat" a l'espera que el procés finalitzi, sense sortida.

L’execució asíncrona evita aquest coll d’ampolla. Essent dient: "Sé que aquesta trucada a la funció trigarà molt, però el meu programa no vol esperar durant la seva execució."

Per a més detalls, llegiu els blocs següents

http: //learn4sfdc.blogspot.in/20 ...

http: //www.bisque.com/help/ccdso ...

Això us pot ser útil ..!