Utas tunggal aman karena hanya ada satu utas, dan tidak ada banyak utas yang mengambil sumber daya yang sama.
Contoh kode:
kelas publik singlethread {int num = 10; public void add () {while (num <13) {num ++; coba {thread.sleep (1000);} catch (exception e) {System.out.println ("interrupt");} System.out.println (num);}} public void (public void (] (] (] {{num) (num);}} public void (public void ({] {{num); // Dapatkan thread thread thread.setName yang sedang berjalan saat ini ("utas tunggal"); // Thread Rename System.out.println (thread.getName ()+"Running"); singlethread st = new singlethread (); st.add ();}}Keselamatan multithreaded, blok kode tersinkronisasi yang disinkronkan
disinkronkan (objek) {}; // Blok kode yang disinkronkan
nama metode nilai pengembalian yang disinkronkan () {}; // Metode yang disinkronkan
kelas satu {int num = 10; public void add () {disinkronkan (ini) {// Blok kode sinkronisasi, metode sinkronisasi juga dapat mencapai efek void add () {}; num ++; coba {thread.sleep (1000); } catch (InterruptedException e) {System.out.println ("Interrupted"); } System.out.println (num); }}} kelas dua implement runnable {one one = new one (); @Override public void run () {one.add (); // Memanggil metode tambah}} Sinkronisasi kelas publik {public static void main (string [] args) {two two = new two (); Utas T1 = utas baru (dua); // Buat tiga utas utas anak T2 = utas baru (dua); Utas T3 = utas baru (dua); t1.start (); t2.start (); t3.start (); }}Catatan: Amati perbedaan dalam menjalankan hasil penghapusan kata kunci yang disinkronkan!
Hasil Operasi Normal:
11
12
13