Rumah Java javaTutorial Java多线程应用方法全解密

Java多线程应用方法全解密

Dec 15, 2016 am 10:04 AM

Java多线程是我们很多时候都会用到的,在不断学习的过程中有很多的应用方法。下面我们就来学习下这些关键的方法。希望大家有所帮助。首先我们先来看看具体的方法分类。

  Java多线程程序中经常用到的方法有以下几个:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),还有一个重要的关键字 synchronized。下面分别对这些方法进行解释:

  一、run()和start()

  这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由Java的内存机制规定的。并且run()方法必须是public访问权限,返回值类型为void。

  二、关键字Synchronized

  这个关键字用于保护共享数据,当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志,当一个线程访问该对象时,被Synchronized修饰的数据将被“上锁”,阻止其他线程访问。当前线程访问完这部分数据后释放锁标志,其他线程就可以访问了。

  1.public ThreadTest implements Runnable

  2.{

  3.public synchronized void run(){

  4.for(int i=0;i<10;i++)

  5.{

  6.System.out.println(" " + i);

  7.}

  8.}

  9.public static void main(String[] args)

  10.{

  11.Runnable r1 = new ThreadTest();

  12.Runnable r2 = new ThreadTest();

  13.Thread t1 = new Thread(r1);

  14.Thread t2 = new Thread(r2);

  15.t1.start();

  16.t2.start();

  17.}

  18.}

  以上这段程序中的 i 变量并不是共享数据,也就是这里的Synchronized关键字并未起作用。因为t1,t2两个线程是两个对象(r1,r2)的线程。不同的对象其数据是不同的,所以r1和r2两个对象的i变量是并不是共享数据。

  当把代码改成如下:Synchronized关键字才会起作用

  19.Runnable r = new ThreadTest();

  20.Thread t1 = new Thread(r);

  21.Thread t2 = new Thread(r);

  22.t1.start();

  23.t2.start();

  以上就是对Java多线程的详细介绍, 更多相关文章请关注PHP中文网(www.php.cn)!


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.

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)

Mendedahkan punca kod status HTTP 460 Mendedahkan punca kod status HTTP 460 Feb 19, 2024 pm 08:30 PM

Menyahsulit kod status HTTP 460: Mengapakah ralat ini berlaku? Pengenalan: Dalam penggunaan rangkaian harian, kami sering menghadapi pelbagai gesaan ralat, termasuk kod status HTTP. Kod status ini ialah mekanisme yang ditakrifkan oleh protokol HTTP untuk menunjukkan pemprosesan permintaan. Di antara kod status ini, terdapat kod ralat yang agak jarang berlaku, iaitu 460. Artikel ini akan menyelidiki kod ralat ini dan menerangkan sebab ralat ini berlaku. Definisi kod status HTTP 460: Pertama, kita perlu memahami asas kod status HTTP

Penyulitan dan penyahsulitan data ThinkPHP6: melindungi keselamatan data sensitif Penyulitan dan penyahsulitan data ThinkPHP6: melindungi keselamatan data sensitif Aug 25, 2023 pm 10:52 PM

Penyulitan dan Penyahsulitan Data ThinkPHP6: Melindungi Keselamatan Data Sensitif Gambaran Keseluruhan: Dengan perkembangan pesat Internet, isu keselamatan data menjadi semakin penting. Terutamanya dalam pembangunan aplikasi rangkaian, perlindungan beberapa data sensitif adalah penting. Rangka kerja ThinkPHP6 menyediakan mekanisme penyulitan dan penyahsulitan data yang berkuasa, yang boleh meningkatkan keselamatan data dengan berkesan dengan menyulitkan data sensitif. Menggunakan fungsi penyulitan ThinkPHP6 Rangka kerja ThinkPHP6 mempunyai pelbagai fungsi penyulitan terbina dalam, yang boleh digunakan mengikut keperluan.

Bagaimana untuk menyediakan penyahsulitan perkataan Bagaimana untuk menyediakan penyahsulitan perkataan Mar 20, 2024 pm 04:36 PM

Dalam persekitaran kerja hari ini, kesedaran semua orang tentang kerahsiaan semakin kukuh dan kukuh, dan operasi penyulitan sering dilakukan untuk melindungi fail apabila menggunakan perisian. Khususnya untuk dokumen penting, kesedaran tentang kerahsiaan harus ditingkatkan, dan keselamatan dokumen harus diberi keutamaan pada setiap masa. Jadi saya tidak tahu sejauh mana semua orang memahami penyahsulitan perkataan Bagaimana untuk mengendalikannya secara khusus? Hari ini kami sebenarnya akan menunjukkan kepada anda proses penyahsulitan perkataan melalui penjelasan berikut Rakan-rakan yang perlu mempelajari ilmu penyahsulitan perkataan tidak boleh ketinggalan kursus hari ini. Operasi penyahsulitan pertama sekali diperlukan untuk melindungi fail, yang bermaksud bahawa fail dilindungi sebagai dokumen. Selepas melakukan ini pada fail, gesaan muncul apabila anda membuka fail itu semula. Cara untuk menyahsulit fail adalah dengan memasukkan kata laluan, jadi anda boleh terus

Kemahiran pembangunan Java didedahkan: melaksanakan fungsi penyulitan dan penyahsulitan data Kemahiran pembangunan Java didedahkan: melaksanakan fungsi penyulitan dan penyahsulitan data Nov 20, 2023 pm 05:00 PM

Kemahiran pembangunan Java didedahkan: Melaksanakan fungsi penyulitan dan penyahsulitan data Dalam era maklumat semasa, keselamatan data telah menjadi isu yang sangat penting. Untuk melindungi keselamatan data sensitif, banyak aplikasi menggunakan algoritma penyulitan untuk menyulitkan data. Sebagai bahasa pengaturcaraan yang sangat popular, Java juga menyediakan perpustakaan yang kaya dengan teknologi dan alatan penyulitan. Artikel ini akan mendedahkan beberapa teknik untuk melaksanakan fungsi penyulitan dan penyahsulitan data dalam pembangunan Java untuk membantu pembangun melindungi keselamatan data dengan lebih baik. 1. Pemilihan algoritma penyulitan data Java menyokong banyak

Penjelasan terperinci tentang senario penggunaan dan fungsi kata kunci yang tidak menentu dalam Java Penjelasan terperinci tentang senario penggunaan dan fungsi kata kunci yang tidak menentu dalam Java Jan 30, 2024 am 10:01 AM

Penjelasan terperinci tentang peranan dan senario aplikasi kata kunci yang tidak menentu dalam Java 1. Peranan kata kunci yang tidak menentu Dalam Java, kata kunci yang tidak menentu digunakan untuk mengenal pasti pembolehubah yang boleh dilihat di antara beberapa utas, iaitu, untuk memastikan keterlihatan. Khususnya, apabila pembolehubah diisytiharkan tidak menentu, sebarang pengubahsuaian pada pembolehubah itu akan diketahui dengan serta-merta oleh rangkaian lain. 2. Senario Aplikasi Bendera Status Kata Kunci Meruap Kata kunci tidak menentu sesuai untuk beberapa senario bendera status, seperti

Senarai lengkap fungsi penyulitan dan penyahsulitan PHP: kaedah aplikasi selamat md5, sha1, base64_encode dan fungsi lain Senarai lengkap fungsi penyulitan dan penyahsulitan PHP: kaedah aplikasi selamat md5, sha1, base64_encode dan fungsi lain Nov 18, 2023 pm 04:18 PM

Senarai lengkap fungsi penyulitan dan penyahsulitan PHP: kaedah aplikasi selamat md5, sha1, base64_encode dan fungsi lain, yang memerlukan contoh kod khusus Dalam pembangunan aplikasi rangkaian, penyulitan data dan penyahsulitan adalah sangat penting. Sebagai bahasa skrip sebelah pelayan yang popular, PHP menyediakan pelbagai fungsi penyulitan dan penyahsulitan Artikel ini akan memperkenalkan fungsi yang biasa digunakan dan kaedah aplikasi selamatnya, dan menyediakan contoh kod khusus. Fungsi md5 Fungsi md5 ialah fungsi penyulitan yang paling biasa yang boleh menukar rentetan sebarang panjang kepada 32 bit

Pengenalan terperinci kepada kaedah penyulitan dan penyahsulitan teks Vim dalam CentOS Pengenalan terperinci kepada kaedah penyulitan dan penyahsulitan teks Vim dalam CentOS Dec 31, 2023 pm 02:49 PM

CentOS menggunakan vim/vi untuk menyulitkan dan menyahsulit fail 1. Gunakan vim/vi untuk menyulitkan: Kelebihan: Selepas penyulitan, jika anda tidak mengetahui kata laluan, anda tidak boleh melihat teks biasa, termasuk pengguna akar Kelemahan: Jelas bahawa orang lain; mengetahui penyulitan, mudah bagi orang lain untuk memusnahkan fail yang disulitkan, termasuk pemusnahan dan pemadaman kandungan. Saya percaya semua orang sudah biasa dengan editor vi. Contohnya: 1) Pertama, dalam induk akar Cipta fail eksperimen text.txt di bawah direktori /root/: [root@www~]#vim/vitext.txt2) Masukkan mod pengeditan, tekan ESC selepas memasukkan kandungan, dan kemudian masukkan: X (perhatikan huruf besar X), Masukkan;

Pengendalian pengecualian dalam persekitaran berbilang benang Java Pengendalian pengecualian dalam persekitaran berbilang benang Java May 01, 2024 pm 06:45 PM

Perkara utama pengendalian pengecualian dalam persekitaran berbilang benang: Pengecualian menangkap: Setiap utas menggunakan blok cuba-tangkap untuk menangkap pengecualian. Kendalikan pengecualian: cetak maklumat ralat atau lakukan logik pengendalian ralat dalam blok tangkapan. Tamatkan utas: Apabila pemulihan adalah mustahil, panggil Thread.stop() untuk menamatkan utas. UncaughtExceptionHandler: Untuk mengendalikan pengecualian yang tidak ditangkap, anda perlu melaksanakan antara muka ini dan menetapkannya pada urutan. Kes praktikal: pengendalian pengecualian dalam kumpulan benang, menggunakan UncaughtExceptionHandler untuk mengendalikan pengecualian yang tidak ditangkap.

See all articles