Rumah Java javaTutorial Bagaimana untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException)

Bagaimana untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException)

Aug 22, 2023 am 09:51 AM
selesaikan benang java Mengganggu tamat masa

Bagaimana untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException)

Cara menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException)

Pengenalan:
Dalam pengaturcaraan serentak, operasi gangguan benang adalah cara teknikal yang sangat biasa. Ia boleh digunakan untuk menamatkan benang yang tidak lagi perlu dijalankan, atau untuk menyelaraskan antara berbilang benang. Walau bagaimanapun, kadangkala gangguan benang tidak selalu selesai dengan lancar, dan tamat masa gangguan mungkin berlaku. Artikel ini akan memperkenalkan cara menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException) dan memberikan contoh kod yang berkaitan.

1. Analisis punca tamat masa gangguan:
Operasi gangguan benang biasanya merupakan operasi tak segerak, iaitu bendera gangguan benang ditetapkan kepada benar serta-merta, tetapi ia tidak serta-merta menyebabkan rangkaian berhenti pelaksanaan. Sama ada benang boleh diganggu dengan jayanya bergantung pada reka bentuk benang itu sendiri dan status berjalan semasa. Apabila anda perlu mengganggu urutan dan menunggu ia berhenti dalam tempoh masa tertentu, jika utas gagal menghentikan pelaksanaan dalam masa yang ditentukan, pengecualian tamat masa gangguan (InterruptedTimeoutException) akan dibuang. . kelas untuk menunggu benang. Selepas utas panggilan melaksanakan kaedah ini, ia menunggu untuk utas yang dipanggil tamat atau untuk tamat masa yang ditentukan dicapai. Jika urutan berakhir dalam tempoh tamat masa, ia akan kembali benar, jika tidak ia akan kembali palsu. Melalui kaedah ini, situasi tamat masa gangguan benang boleh diselesaikan dengan berkesan.


Kod sampel adalah seperti berikut:

Thread thread = new Thread(() -> {
    // 线程执行的逻辑代码
});

thread.start(); // 启动线程

try {
    thread.join(1000); // 线程最多等待1秒钟
} catch (InterruptedException e) {
    // 处理中断异常
}

if (thread.isAlive()) {
    thread.interrupt(); // 如果线程还未结束,手动中断
}
Salin selepas log masuk
  1. Gunakan kaedah Future.get(masa tamat masa yang lama, unit TimeUnit):
    Penyelesaian lain ialah menggunakan Future dan ExecutorService daripada perpustakaan concurrency Java. Antara muka Masa Depan mewakili hasil pengiraan tak segerak, dan kaedah get (masa tamat masa, unit Unit Masa) boleh menetapkan tamat masa. Jika tugas gagal diselesaikan dalam tempoh tamat masa yang ditentukan, pengecualian tamat masa akan dilemparkan, dengan itu mengganggu operasi.

Kod sampel adalah seperti berikut:

ExecutorService executor = Executors.newSingleThreadExecutor();

Future<?> future = executor.submit(() -> {
    // 线程执行的逻辑代码
    // 注意,此处不能使用while循环等待线程中断,否则可能导致线程无法正确中断
});

try {
    future.get(1000, TimeUnit.MILLISECONDS); // 最多等待1秒钟
} catch (InterruptedException | ExecutionException | TimeoutException e) {
    // 处理中断异常
    future.cancel(true); // 如果超时,手动取消任务
}

executor.shutdown(); // 关闭线程池
Salin selepas log masuk
  1. Bendera gangguan tersuai dan mekanisme tamat masa menunggu:
    Dalam beberapa kes khas, mungkin perlu menyesuaikan bendera gangguan dan mekanisme tamat masa menunggu. Anda boleh menggunakan pembolehubah jenis boolean yang diubah suai meruap sebagai bendera sampukan, kemudian tinjauan pendapat untuk menentukan bendera semasa pelaksanaan utas dan mengganggu urutan secara manual apabila syarat tamat masa dipenuhi.

Kod sampel adalah seperti berikut:

volatile boolean interrupted = false;

Thread thread = new Thread(() -> {
    while (!interrupted) {
        // 线程执行的逻辑代码
    }
});

thread.start(); // 启动线程

try {
    Thread.sleep(1000); // 等待1秒钟
} catch (InterruptedException e) {
    // 处理中断异常
}

interrupted = true; // 设置中断标志

thread.interrupt(); // 中断线程
Salin selepas log masuk
    Ringkasan:
  1. Di atas ialah tiga kaedah biasa untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException). Dengan menggunakan kaedah Thread.join(), kaedah Future.get() atau bendera gangguan tersuai dan mekanisme tamat masa tunggu, kami boleh mengelakkan pengecualian yang disebabkan oleh tamat masa operasi gangguan benang dan mencapai gangguan benang yang fleksibel dan boleh dipercayai.
  2. Namun, apabila menggunakan operasi gangguan benang, kita juga harus memberi perhatian untuk mengelakkan masalah konkurensi seperti kebuntuan dan keadaan perlumbaan untuk memastikan operasi benang yang selamat dan boleh dipercayai.

Bahan rujukan:


Dokumentasi rasmi Oracle - https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html

Dokumentasi rasmi Oracle - https://docs.oracle .com/javase/8/docs/api/java/util/concurrent/Future.html

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk Membetulkan Kod Ralat Steam 118 Bagaimana untuk Membetulkan Kod Ralat Steam 118 Feb 19, 2024 pm 05:56 PM

Steam ialah platform permainan yang terkenal di dunia yang membolehkan pengguna membeli, memuat turun dan bermain permainan. Walau bagaimanapun, kadangkala pengguna mungkin menghadapi beberapa masalah semasa menggunakan Steam, seperti kod ralat 118. Dalam artikel ini, kami akan meneroka masalah ini dan cara menyelesaikannya. Mula-mula, mari kita fahami maksud kod ralat 118. Kod ralat 118 muncul apabila anda cuba log masuk ke Steam, yang bermaksud komputer anda tidak boleh menyambung ke pelayan Steam. Ini mungkin disebabkan oleh isu rangkaian, tetapan tembok api, tetapan proksi atau

Penyelesaian kepada masalah bahawa sistem Win11 tidak dapat memasang pek bahasa Cina Penyelesaian kepada masalah bahawa sistem Win11 tidak dapat memasang pek bahasa Cina Mar 09, 2024 am 09:48 AM

Penyelesaian kepada masalah sistem Win11 tidak dapat memasang pek bahasa Cina Dengan pelancaran sistem Windows 11, ramai pengguna mula menaik taraf sistem pengendalian mereka untuk mengalami fungsi dan antara muka baharu. Walau bagaimanapun, sesetengah pengguna mendapati bahawa mereka tidak dapat memasang pek bahasa Cina selepas menaik taraf, yang menyusahkan pengalaman mereka. Dalam artikel ini, kami akan membincangkan sebab mengapa sistem Win11 tidak dapat memasang pek bahasa Cina dan menyediakan beberapa penyelesaian untuk membantu pengguna menyelesaikan masalah ini. Analisis sebab Pertama, mari kita menganalisis ketidakupayaan sistem Win11 untuk

Bagaimana untuk menyelesaikan kod ralat wap E20 Bagaimana untuk menyelesaikan kod ralat wap E20 Feb 19, 2024 pm 09:17 PM

Apabila menggunakan Steam untuk memuat turun, mengemas kini atau memasang permainan, anda sering menghadapi pelbagai kod ralat. Antaranya, kod ralat biasa ialah E20. Kod ralat ini biasanya bermakna pelanggan Steam menghadapi masalah untuk mengemas kini permainan. Nasib baik, walaupun, ia tidak begitu sukar untuk menyelesaikan masalah ini. Mula-mula, kita boleh mencuba penyelesaian berikut untuk membetulkan kod ralat E20 1. Mulakan semula klien Steam: Kadangkala, memulakan semula klien Steam secara langsung boleh menyelesaikan masalah ini. Dalam tetingkap Steam

Lima petua untuk mengajar anda cara menyelesaikan masalah telefon Black Shark tidak dihidupkan! Lima petua untuk mengajar anda cara menyelesaikan masalah telefon Black Shark tidak dihidupkan! Mar 24, 2024 pm 12:27 PM

Apabila teknologi telefon pintar terus berkembang, telefon bimbit memainkan peranan yang semakin penting dalam kehidupan seharian kita. Sebagai telefon perdana yang memfokuskan pada prestasi permainan, telefon Black Shark sangat digemari oleh pemain. Namun, kadangkala kita juga menghadapi situasi telefon Black Shark tidak boleh dihidupkan Pada masa ini, kita perlu mengambil beberapa langkah untuk menyelesaikan masalah ini. Seterusnya, izinkan kami berkongsi lima petua untuk mengajar anda cara menyelesaikan masalah telefon Black Shark tidak dihidupkan: Langkah 1: Periksa kuasa bateri Pertama, pastikan telefon Black Shark anda mempunyai kuasa yang mencukupi. Ia mungkin kerana bateri telefon telah habis

Pemacu tidak boleh dimuatkan pada peranti ini Bagaimana untuk menyelesaikannya? (Diuji secara peribadi dan sah) Pemacu tidak boleh dimuatkan pada peranti ini Bagaimana untuk menyelesaikannya? (Diuji secara peribadi dan sah) Mar 14, 2024 pm 09:00 PM

Semua orang tahu bahawa jika komputer tidak dapat memuatkan pemacu, peranti mungkin tidak berfungsi dengan betul atau berinteraksi dengan komputer dengan betul. Jadi bagaimana kita menyelesaikan masalah apabila kotak gesaan muncul pada komputer bahawa pemandu tidak boleh dimuatkan pada peranti ini? Editor di bawah akan mengajar anda dua cara untuk menyelesaikan masalah dengan mudah. Tidak dapat memuatkan pemacu pada peranti ini Penyelesaian 1. Cari "Pengasingan Kernel" dalam menu Mula. 2. Matikan Integriti Memori, dan ia akan menggesa "Integriti Memori telah dimatikan. Peranti anda mungkin terdedah. Klik di belakang untuk mengabaikannya, dan ia tidak akan menjejaskan penggunaan." 3. Masalah boleh diselesaikan selepas menghidupkan semula mesin.

Bagaimana untuk menyelesaikan masalah menyimpan gambar secara automatik semasa menerbitkan di Xiaohongshu? Di manakah imej yang disimpan secara automatik semasa menyiarkan? Bagaimana untuk menyelesaikan masalah menyimpan gambar secara automatik semasa menerbitkan di Xiaohongshu? Di manakah imej yang disimpan secara automatik semasa menyiarkan? Mar 22, 2024 am 08:06 AM

Dengan perkembangan media sosial yang berterusan, Xiaohongshu telah menjadi platform untuk lebih ramai golongan muda berkongsi kehidupan mereka dan menemui perkara yang indah. Ramai pengguna bermasalah dengan isu autosimpan semasa menyiarkan imej. Jadi, bagaimana untuk menyelesaikan masalah ini? 1. Bagaimana untuk menyelesaikan masalah menyimpan gambar secara automatik semasa menerbitkan di Xiaohongshu? 1. Kosongkan cache Pertama, kita boleh cuba mengosongkan data cache Xiaohongshu. Langkah-langkahnya adalah seperti berikut: (1) Buka Xiaohongshu dan klik butang "Saya" di sudut kanan bawah (2) Pada halaman tengah peribadi, cari "Tetapan" dan klik padanya (3) Tatal ke bawah dan cari "; Kosongkan Cache". Klik OK. Selepas mengosongkan cache, masukkan semula Xiaohongshu dan cuba siarkan gambar untuk melihat sama ada masalah penjimatan automatik telah diselesaikan. 2. Kemas kini versi Xiaohongshu untuk memastikan bahawa Xiaohongshu anda

Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam Linux Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam Linux Feb 21, 2024 am 10:48 AM

Masalah bercelaru Cina Linux adalah masalah biasa apabila menggunakan set aksara Cina dan pengekodan. Watak bercelaru mungkin disebabkan oleh tetapan pengekodan fail yang salah, tempat sistem tidak dipasang atau ditetapkan, dan ralat konfigurasi paparan terminal, dsb. Artikel ini akan memperkenalkan beberapa penyelesaian biasa dan memberikan contoh kod khusus. 1. Periksa tetapan pengekodan fail Gunakan arahan fail untuk melihat pengekodan fail Gunakan perintah fail dalam terminal untuk melihat pengekodan fail: nama fail-fail jika terdapat "charset".

Kongsi kaedah untuk menyelesaikan masalah yang PyCharm tidak boleh dibuka Kongsi kaedah untuk menyelesaikan masalah yang PyCharm tidak boleh dibuka Feb 22, 2024 am 09:03 AM

Tajuk: Cara menyelesaikan masalah yang PyCharm tidak boleh dibuka ialah persekitaran pembangunan bersepadu Python yang berkuasa, tetapi kadangkala kita mungkin menghadapi masalah yang tidak dapat dibuka PyCharm. Dalam artikel ini, kami akan berkongsi beberapa penyelesaian biasa dan memberikan contoh kod khusus. Semoga ini membantu mereka yang menghadapi masalah ini. Kaedah 1: Kosongkan cache Kadangkala fail cache PyCharm boleh menyebabkan program gagal dibuka seperti biasa. Kami boleh cuba mengosongkan cache untuk menyelesaikan masalah ini. alat

See all articles