cari
RumahJavajavaTutorialBlok Disegerakkan di Jawa

Blok Disegerakkan di Jawa

Aug 30, 2024 pm 03:58 PM
java

Di Java, blok Disegerakkan membantu dalam melaksanakan penyegerakan pada mana-mana sumber tertentu fungsi atau kaedah. Jika terdapat 100 baris kod(LOC) dan penyegerakan perlu dilakukan hanya untuk 10 baris, maka blok yang disegerakkan boleh digunakan. Disegerakkan boleh digunakan sebagai kata kunci, kaedah dan blok. Dalam tutorial ini, kami akan membincangkan blok yang disegerakkan secara terperinci.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks:

Sintaks blok yang disegerakkan adalah seperti yang ditunjukkan di bawah:

Synchronized( lo)
{
//statements that have to be synchronized
}

Di sini, lihatlah objek kunci

Bagaimanakah Blok Disegerakkan Berfungsi dalam Java?

Seperti yang telah dibincangkan, blok Disegerakkan membantu dalam melaksanakan penyegerakan pada mana-mana sumber tertentu fungsi atau kaedah. Apabila utas perlu melaksanakan baris yang disegerakkan di dalam blok disegerakkan, adalah wajib untuk memperoleh kunci pada monitor objek kunci yang disebutkan dalam sintaks di atas. Pada satu masa, hanya 1 utas boleh memperoleh monitor objek kunci. Setiap utas perlu menunggu sehingga utas yang pada masa ini memegang kunci menyelesaikan pelaksanaan dan melepaskannya.

Begitu juga, kata kunci disegerakkan memastikan bahawa pada satu-satu masa, hanya 1 utas akan melaksanakan baris kod dalam blok segerak, yang seterusnya menghalang lebih daripada satu utas daripada merosakkan data yang dikongsi dalam blok.

Andaikan kaedah mengandungi 500 LOC(baris kod), tetapi terdapat hanya 20 baris kod yang memegang bahagian kritikal (CS) kod. Iaitu, 20 baris ini boleh mengubah atau mengubah keadaan objek. Jadi penyegerakan boleh dilakukan pada 20 baris fungsi kod ini untuk mengelakkan sebarang perubahan dalam keadaan objek dan memastikan bahawa utas lain melaksanakan 480 baris lain dalam kaedah tertentu tanpa sebarang selingan.

Contoh Blok Tersegerak dalam Java

Sekarang, mari kita lihat beberapa contoh program pada blok disegerakkan di Java.

Contoh #1

Program Java untuk melaksanakan blok disegerakkan

Kod:

class Testsmple{
void printTestsmple(int n)
{
//start of synchronized block
synchronized(this)
{
System.out.println("The output of synchronized block is: ");
for( int i=1 ; i
<p><strong>Output:</strong></p>


<p><img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172500473898450.png?x-oss-process=image/resize,p_40" class="lazy" alt="Blok Disegerakkan di Jawa" ></p>
<p>Dalam program ini, dua utas t1 dan t2, digunakan di mana setiap satu daripadanya mempunyai kaedah printTestsmple yang memanggil kaedah disegerakkan. Input benang 1 untuk printTestsmple ialah 10, dan input benang 2 ialah 200. Hasilnya, dapat dilihat bahawa output blok disegerakkan benang pertama ialah 10, 20, 30, 40. Pada masa yang sama, hasil blok disegerakkan benang 2 ialah 200, 400, 600, 800. Selain itu, terdapat baris "Output blok disegerakkan ialah:" yang akan dicetak antara hasil setiap utas.</p>
<h4 id="Contoh">Contoh #2</h4>
<p>Program Java untuk melaksanakan blok disegerakkan dengan bantuan menggunakan kelas tanpa nama.</p>
<p><strong>Kod:</strong></p>
<pre class="brush:php;toolbar:false">class Testsmple{
void printTestsmple(int n)
{
//start of synchronized block
synchronized(this)
{
System.out.println("The output of synchronized block is: ");
for( int i=1 ; i
<p><strong>Output:</strong></p>
<p><img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172500474092308.png?x-oss-process=image/resize,p_40" class="lazy" alt="Blok Disegerakkan di Jawa" ></p>


<p>Dalam program ini juga, dua utas t1 dan t2, digunakan di mana setiap satu daripadanya mempunyai kaedah printTestsmple yang memanggil kaedah disegerakkan. Input benang 1 untuk printTestsmple ialah 10, dan input benang 2 ialah 200. Hasilnya, dapat dilihat bahawa output blok disegerakkan benang pertama ialah 10, 20, 30, 40. Pada masa yang sama, hasil blok disegerakkan benang 2 ialah 200, 400, 600, 800. Selain itu, terdapat baris "Output blok disegerakkan ialah:" yang akan dicetak antara hasil setiap utas. Satu-satunya perbezaan ialah kehadiran kelas tanpa nama dalam program ini.</p>
<h4 id="Contoh">Contoh #3</h4>
<p>Atur cara Java untuk melaksanakan blok disegerakkan.</p>
<pre class="brush:php;toolbar:false">import java.util.*;
class ABC
{
String nm = "";
public int cnt = 0;
public void samplename(String stringexample, List<string>li)
{
// In order to change the name at a time, only 1 thread is permitted
synchronized(this)
{
nm = stringexample;
cnt++;
}
li.add(stringexample);
}
}
public class SyncBlockExample
{
//main method
public static void main (String[] args)
{
//create an object for the class ABC
ABC obj = new ABC();
//create a list
List<string>li = new ArrayList<string>();
//call the method using the object created
obj.samplename("Anna Sam", li);
System.out.println(obj.nm);
}
}</string></string></string>

Output:

Blok Disegerakkan di Jawa

Dalam program ini, kelas ABC dicipta dengan kaedah yang disegerakkan di dalam nama sampel kaedah. Rentetan "Anna Sam" dihantar sebagai input untuk memanggil nama sampel kaedah. Semasa melaksanakan kod, rentetan “Anna Sam” akan dicetak.

Kelebihan

Beberapa kelebihan diberikan di bawah:

  • Peningkatan prestasi boleh dilakukan jika skop penyegerakan adalah terhad.
  • Segerakkan blok kecil kod untuk mengurangkan kos pengiraan.
  • Fleksibel untuk menggunakan objek lain sebagai kunci.
  • Memandangkan Java ialah bahasa pengaturcaraan berbilang benang, adalah lebih baik untuk mencapai pengecualian bersama pada sumber yang dikongsi.

Atas ialah kandungan terperinci Blok Disegerakkan di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.