Apa perbedaan antara asinkron dan sinkron di Java?


Jawaban 1:

Kode Java mengeksekusi baris demi baris. Misalkan jika Anda membaca satu set file besar yang memiliki rincian ujian sekolah seluruh negara bagian, di mana satu file memiliki data hasil ujian satu sekolah.

Selanjutnya Anda ingin mengurutkan catatan siswa berdasarkan nilai total per kelas dan ditampilkan di UI. Jika Anda menulis ini sebagai kode java normal (yaitu Tanpa multi threading), setiap baris akan mengeksekusi satu per satu. Anda tidak dapat memproses file lain jika satu file belum selesai diproses. Jika Anda ingin melakukan operasi paralel misalnya: Membuat koneksi DB, Anda tidak dapat melakukannya, karena itu akan terjadi hanya setelah pemrosesan file Anda selesai. Perilaku berurutan ini dapat disebut sebagai perilaku Sinkron.

Sekarang Anda dapat membaca dan memproses sub-grup file dengan sangat baik tanpa mengganggu pemrosesan file lain dengan menjalankan tugas secara paralel (alias Utas). Fenomena ini disebut sebagai Multithreading. Penelepon (orang yang membutuhkan hasil) dapat diberitahu ketika pemrosesan selesai dan hasilnya kemudian dapat digunakan untuk diproses lebih lanjut. Jadi, eksekusi yang terjadi secara independen, tanpa mengganggu aliran Normal eksekusi disebut panggilan Asynchronous.

Ada beberapa cara di mana Anda dapat melakukan panggilan asinkron di Jawa tergantung pada kebutuhan Anda. (Tapi menganggap mereka baik-baik itu sangat penting dan rumit kadang-kadang.)

Selain antarmuka Runnable (yang digunakan untuk hanya menjalankan tugas tetapi tidak mengembalikan apa pun ke pemanggil), Anda dapat membaca tentang antarmuka Callable dan objek Masa Depan di java. (Yang dapat mengembalikan data ke pemanggil)

Cuplikan ini dari blog oracle

Menggunakan Callable untuk Mengembalikan Hasil Dari Runnables


Jawaban 2:

Eksekusi Asinkron vs Sinkron

Perbedaan antara eksekusi sinkron dan asinkron mungkin tampak sedikit membingungkan pada awalnya. Eksekusi program dalam sebagian besar bahasa tingkat tinggi biasanya sangat mudah. Program Anda dimulai pada baris pertama kode sumber dan setiap baris kode dieksekusi secara berurutan setelahnya. Cukup mudah.

Eksekusi program sinkron agak mirip dengan di atas. Program Anda dieksekusi baris demi baris, satu demi satu. Setiap kali fungsi dipanggil, eksekusi program menunggu hingga fungsi itu kembali sebelum melanjutkan ke baris kode berikutnya.

Metode eksekusi ini dapat memiliki konsekuensi yang tidak diinginkan. Misalkan suatu fungsi dipanggil untuk memulai proses yang memakan waktu. Bagaimana jika Anda ingin menghentikan proses yang panjang? Dengan eksekusi yang sinkron, program Anda “macet,” menunggu prosesnya berakhir, tanpa jalan keluar.

Eksekusi asinkron menghindari hambatan ini. Anda pada dasarnya mengatakan, "Saya tahu pemanggilan fungsi ini akan membutuhkan banyak waktu, tetapi program saya tidak ingin menunggu saat dijalankan."

Untuk lebih jelasnya baca blog di bawah ini,

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

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

Ini mungkin membantu Anda ..!