Ketika program Java dimulai, utas segera berjalan. Pentingnya utas utama tercermin dalam dua aspek:
Meskipun utas utama secara otomatis dibuat ketika program dimulai, itu dapat dikontrol oleh objek utas. Untuk melakukan ini, Anda harus memanggil metode CurrentThread () untuk mendapatkan referensi untuk itu, yang merupakan anggota statis publik dari kelas utas. Bentuknya yang biasa adalah sebagai berikut:
Thread statis currentThread ()
Metode ini mengembalikan referensi ke utas yang menyebutnya. Setelah Anda mendapatkan referensi ke utas utama, Anda dapat mengontrol utas utama seperti yang Anda lakukan untuk mengontrol utas lain.
Mari kita mulai dengan meninjau contoh -contoh berikut:
// Mengontrol utas utama. CLASSTHREADDEMO {public static void main (string args []) {thread t = thread.currentThread (); dari utas T.SetName ("My Thread"); .println (n);Dalam program ini, referensi ke utas saat ini (atau utas utama) diperoleh dengan memanggil arusThread (), yang disimpan dalam variabel lokal t. Program kemudian menampilkan informasi utas. Kemudian program memanggil setName () untuk mengubah nama internal utas. Informasi utas ditampilkan lagi. Kemudian, nomor siklus mulai menurun dari 5, berhenti selama satu detik setiap kali. Jeda dilakukan dengan metode tidur (). Pernyataan tidur () dengan jelas menetapkan bahwa waktu tunda adalah 1 milidetik. Perhatikan blok coba/tangkap di luar loop.
Metode Sleep () dari kelas utas dapat meningkatkan pengecualian Exception. Situasi ini akan terjadi ketika utas lain ingin mengganggu benang tidur. Contoh ini hanya mencetak pesan apakah itu terganggu. Dalam program aktual, Anda harus fleksibel dalam menangani masalah seperti itu. Berikut ini adalah output dari program ini:
Thread saat ini: utas [main, 5, utama] Setelah perubahan nama: utas [utas saya, 5, utama] 54321
Perhatikan bahwa T digunakan sebagai output ketika parameter digunakan dalam pernyataan println (). Pesanan Tampilan: Nama Thread, Prioritas, dan Nama Grup. Secara default, nama utas utama adalah utama. Prioritasnya adalah 5, yang juga merupakan nilai default, dan utama juga merupakan nama grup utas yang menjadi miliknya. Grup utas adalah struktur data yang mengontrol keadaan utas secara keseluruhan. Proses ini ditangani oleh lingkungan runtime eksklusif, jadi saya tidak akan membahas detail di sini. Setelah nama utas diubah, t output lagi. Kali ini, nama utas baru ditampilkan.
Mari kita pelajari metode yang ditentukan oleh kelas utas dalam program lebih hati -hati. Metode tidur () menunjukkan bahwa utas dipanggil untuk ditangguhkan sesuai dengan waktu milidetik. Bentuknya yang biasa adalah sebagai berikut:
Sleep static void (jutaan panjang) melempar interrupted exception
Waktu untuk menggantung didefinisikan dengan jelas sebagai milidetik. Metode ini dapat melempar pengecualian Exception.
Ada bentuk kedua dari metode tidur (), yang ditunjukkan di bawah ini, yang memungkinkan Anda untuk menentukan apakah waktunya dalam milidetik atau nanodetik sebagai siklus.
Sleep void statis (jutaan orang panjang, int nanoseconds) melempar interruptedException
Formulir kedua hanya tersedia jika periode waktu diizinkan dalam nanodetik. Seperti yang ditunjukkan dalam program di atas, Anda dapat menggunakan setName () untuk mengatur nama utas dan menggunakan getName () untuk mendapatkan nama utas (proses ini tidak tercermin dalam program). Metode -metode ini adalah anggota kelas utas dan dinyatakan sebagai berikut:
final void setName (string threadName) string final getName ()
Di sini, ThreadName secara khusus mengacu pada nama utas.