Video: Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks 2024
Untuk benang yang memicu peristiwa hitung mundur tertentu seperti membanjiri landasan peluncuran, memulai aktivitas, dan mengangkatnya, Anda dapat membuat kelas Java lain yang disebut LaunchEvent. Kelas ini menggunakan teknik lain untuk membuat dan memulai benang - yang memerlukan beberapa baris kode namun lebih fleksibel.
Masalah dengan membuat kelas yang memperluas kelas Thread adalah kelas bisa memiliki satu superclass. Bagaimana jika Anda lebih suka memiliki objek thread Anda untuk memperpanjang kelas lain? Dalam hal ini, Anda dapat membuat kelas yang mengimplementasikan antarmuka Runnable daripada memperluas kelas Thread.
Antarmuka Runnable menandai sebuah objek yang dapat dijalankan sebagai sebuah thread. Ini hanya memiliki satu metode, jalankan, yang berisi kode yang dieksekusi di thread. (Kelas Thread sendiri mengimplementasikan Runnable, karena itulah kelas Thread memiliki metode lari.)
Untuk menggunakan antarmuka Runnable untuk membuat dan memulai sebuah thread, Anda harus melakukan hal berikut:
-
Buat kelas yang mengimplementasikan Runnable.
-
Berikan metode lari di kelas Runnable.
-
Buat sebuah instance dari kelas Thread dan lewati objek Runnable Anda ke konstruktornya sebagai parameter.
Objek Thread dibuat yang bisa menjalankan kelas Runnable Anda.
-
Panggil metode awal objek Thread.
Metode runnable dari objek Runnable Anda dipanggil dan dijalankan di thread terpisah.
Dua langkah pertama ini mudah dilakukan. Caranya pada langkah ketiga dan keempat, karena Anda bisa menyelesaikannya dalam beberapa cara. Inilah salah satu cara, dengan asumsi bahwa kelas Runnable Anda diberi nama RunnableClass:
RunnableClass rc = RunnableClass baru (); Thread t = new Thread (rc); t. mulai();
Pemrogram Java suka sesering mungkin, jadi Anda sering melihat kode ini dikompresi menjadi sesuatu yang lebih mirip
Thread t = new Thread (RunnableClass baru ()); t. mulai();
atau bahkan hanya ini:
new Thread (new RunnableClass ()). mulai();
Versi satu baris ini bekerja - asalkan Anda tidak perlu mengakses objek thread di kemudian hari dalam program.