Mis vahe on Java-s asünkroonne ja sünkroonne?


Vastus 1:

Java-kood täidab rida-realt. Oletame, et kui loete suurte failide komplekti, milles on kogu osariigi koolide eksamite üksikasjad, kus ühes failis on andmed ühe kooli eksamitulemuste kohta.

Lisaks soovite õpilaste kirjeid sorteerida klasside koguarvu järgi ja näidata UI-s. Kui kirjutada see tavalise java koodina (st ilma mitme keermestamiseta), siis täidab iga rida ükshaaval. Teist faili ei saa töödelda, kui ühe faili töötlemine pole veel lõppenud. Näiteks kui soovite teha mõnda paralleelset toimingut: DB-ühenduse loomine, ei saa te seda teha, sest see juhtub alles pärast teie faili töötlemist. Seda järjestikust käitumist võib nimetada sünkroonseks käitumiseks.

Nüüd saate väga hästi lugeda ja töödelda failide alamrühma, katkestamata teiste failide töötlemist, täites ülesandeid paralleelselt (teise nimega Threads). Seda nähtust nimetatakse multithreadinguks. Helistajat (seda, kes vajab tulemust) saab teavitada, kui töötlemine on lõpule viidud ja tulemust saab seejärel edasiseks töötlemiseks kasutada. Niisiis, täitmist, mis toimub iseseisvalt, ilma tavalist täitmisvoogu katkestamata, nimetatakse asünkroonseks kõneks.

Olenevalt teie nõudest on Java-s asünkroonkõnesid võimalik teha kahel viisil. (Kuid nende hea vastandamine on kohati äärmiselt oluline ja keeruline.)

Lisaks käitatavale liidesele (mida kasutatakse lihtsalt ülesannete täitmiseks, kuid ei tagasta helistajale midagi), saate lugeda javas olevaid Callable-liidese ja tulevaste objektide kohta. (Mis võib helistajale andmeid tagastada)

See koodilõik on pärit oraakli ajaveebist

Kallutatava kasutamine käitatavate tulemuste tagastamiseks


Vastus 2:

Asünkroonne vs sünkroonne täitmine

Erinevus sünkroonse ja asünkroonse täitmise vahel võib alguses tunduda pisut segane. Programmi täitmine enamikus kõrgetasemelistes keeltes on tavaliselt väga lihtne. Teie programm algab lähtekoodi esimesest reast ja pärast seda käivitatakse iga koodirida. Piisavalt lihtne.

Programmi sünkroonne täitmine on mõnevõrra sarnane ülaltooduga. Teie programmi täidetakse ridahaaval, üks rida korraga. Iga kord, kui funktsiooni kutsutakse, ootab programmi täitmine, kuni see funktsioon naaseb, enne kui jätkatakse järgmise koodiridaga.

Sellel täitmismeetodil võib olla soovimatuid tagajärgi. Oletame, et aeganõudva protsessi alustamiseks kutsutakse funktsioon. Mis siis saab, kui soovite pika protsessi peatada? Sünkroonse täitmise korral on teie programm ummikus, oodates protsessi lõppu ilma väljapääsuta.

Asünkroonne täitmine väldib seda kitsaskohta. Te ütlete sisuliselt: "Ma tean, et see funktsioonikõne võtab palju aega, kuid minu programm ei taha selle täitmise ajal oodata."

Lisateavet lugege allolevatest ajaveebidest,

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

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

See võib teile kasulik olla ..!