Perbezaan Utama – Runnable vs Thread
Atur cara dalam pelaksanaan dikenali sebagai proses. Proses ini boleh dibahagikan kepada beberapa subproses. Sebagai contoh, Microsoft Word ialah satu proses. Pada masa yang sama, ia menyemak kesilapan ejaan dan tatabahasa. Itu adalah subproses. Subproses ini dikenali sebagai benang. Multithreading ialah proses melaksanakan berbilang benang secara serentak. Aplikasi berbenang boleh dibina menggunakan bahasa pengaturcaraan yang berbeza. Runnable dan Thread dikaitkan dengan pengaturcaraan Java. Terdapat dua kaedah dalam Java untuk mencipta benang dengan melaksanakan antara muka Runnable atau melanjutkan kelas Thread. Apabila melaksanakan Runnable, banyak thread boleh berkongsi objek thread yang sama semasa dalam kelas Extending Thread, setiap thread mempunyai objek unik yang dikaitkan dengannya. Itulah perbezaan utama antara Runnable dan Thread.
Apakah itu Runnable?
Urutan melalui beberapa keadaan. "Baharu" ialah permulaan kitaran hayat benang. Selepas kaedah start() memanggil urutan baharu, ia menjadi boleh dijalankan. Jika penjadual benang memilih benang, ia akan beralih ke keadaan berjalan. Benang sedang menunggu keadaan jika benang itu sedang menunggu benang lain untuk melaksanakan tugas. Selepas urutan menyelesaikan kerja, ia pergi ke keadaan penamatan.
Urutan boleh dilaksanakan menggunakan antara muka Runnable. Rujuk program di bawah.
Rajah 01: Program Java untuk mencipta benang menggunakan antara muka Runnable
Menurut program di atas, kelas Runnable Demo melaksanakan antara muka Runnable. Kaedah run() berada di dalam kelas yang melaksanakan antara muka Runnable. Ia adalah titik masuk untuk benang. Logiknya adalah dalam kaedah run(). Dalam atur cara utama, benang dicipta dengan mentakrifkan objek yang diwujudkan daripada kelas Runnable Demo. Ia adalah t1. Kaedah mula() dipanggil menggunakan t1.
Rujuk program di bawah.
Rajah 02: Program Java untuk mencipta benang untuk melaksanakan gelung, dengan melaksanakan antara muka Runnable
Mengikut contoh di atas, kelas Runnable Demo melaksanakan antara muka Runnable. Logik untuk melaksanakan menggunakan benang ditulis dalam kaedah run(). Dalam atur cara utama, benang dicipta dengan mentakrifkan objek yang diwujudkan daripada kelas Runnable Demo. Ia adalah t1. Kemudian, kaedah mula() dipanggil menggunakan t1.
Apakah Benang?
Kaedah lain untuk mencipta utas adalah dengan melanjutkan kelas Thread. Ia terdiri daripada tiga langkah. Pertama ialah mengisytiharkan kelas sebagai melanjutkan kelas Thread. Selepas itu, kaedah run() hendaklah ditulis. Ia mempunyai urutan langkah yang harus dilaksanakan oleh benang. Akhir sekali, objek thread dicipta, dan kaedah start() dipanggil untuk memulakan pelaksanaan thread. Rujuk program di bawah.
Rajah 03: Program Java yang memanjangkan kelas Thread
Mengikut program di atas, kelas MyThread memanjangkan kelas Thread. Ia mengatasi kaedah larian. Kaedah run() mengandungi logik yang akan dilaksanakan oleh benang. Ia adalah titik masuk ke benang. Kemudian objek benang dibuat. Ia adalah benang1. Benang dimulakan menggunakan kaedah mula(). Ia akan melaksanakan kaedah panggilan untuk menjalankan().
Contoh program dua kelas melanjutkan kelas Thread adalah seperti berikut.
Rajah 04: Program Java dengan dua kelas yang memanjangkan kelas Thread
Menurut program di atas, kedua-dua kelas A dan B memanjangkan kelas Thread. Kedua-dua kelas mempunyai pelaksanaan kaedah run() mereka. Benang utama ialah yang melaksanakan kaedah main(). Sebelum utas utama mati, ia mencipta dan memulakan utas1 dan utas2. Pada masa benang utama mencapai penghujung kaedah utama, tiga utas berjalan secara selari. Tiada susunan khusus di mana benang memberikan output. Sebaik sahaja benang dimulakan, sukar untuk memutuskan pesanan yang akan mereka laksanakan. Mereka berlari secara bebas.
Apakah Persamaan Antara Runnable dan Thread?
Kedua-duanya menggunakan untuk membuat urutan dalam Java
Apakah Perbezaan Antara Runnable dan Thread?
Boleh Dijalankan lwn Benang |
|
Runnable ialah antara muka dalam Java untuk mencipta utas yang membenarkan banyak utas berkongsi objek utas yang sama. | Benang itu ialah kelas dalam Java untuk mencipta utas di mana setiap utas mempunyai objek unik yang dikaitkan dengannya. |
Memori | |
Dalam Runnable, berbilang utas berkongsi objek yang sama, jadi memerlukan lebih sedikit memori. | Dalam kelas Thread, setiap utas mencipta objek unik, oleh itu memerlukan lebih banyak memori. |
Memperluaskan Keupayaan | |
Selepas melaksanakan antara muka Runnable, ia boleh melanjutkan kelas. | Pewarisan berbilang tidak disokong di Java. Selepas melanjutkan kelas Thread, ia tidak boleh melanjutkan mana-mana kelas lain. |
Kebolehselenggaraan Kod | |
Antara muka boleh jalan menjadikan kod lebih boleh diselenggara. | Dalam kelas Thread, penyelenggaraan memakan masa. |
Ringkasan – Runnable vs Thread
Sesuatu proses dibahagikan kepada berbilang sub-proses untuk melaksanakan berbilang tugas pada masa yang sama. Subproses ini dikenali sebagai benang. Menghidupkan thread boleh dilakukan dengan melaksanakan antara muka Runnable atau dengan melanjutkan Kelas Thread. Adalah mudah untuk melanjutkan kelas Thread, tetapi ia bukan amalan Pengaturcaraan Berorientasikan Objek yang lebih baik. Apabila melaksanakan Runnable, banyak thread boleh berkongsi objek thread yang sama semasa dalam melanjutkan kelas Thread setiap thread mempunyai objek unik yang dikaitkan dengannya. Itulah perbezaan antara Runnable dan Thread. Dalam kelas Thread penciptaan berbilang objek boleh menggunakan lebih banyak memori.
Muat turun PDF Runnable vs Thread
Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian seperti dalam nota petikan. Sila muat turun versi PDF di sini Perbezaan Antara Runnable dan Thread