Java多线程应用方法全解密
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)!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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 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.

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 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 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, 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

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;

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.
