موضوع واحد آمن لأنه لا يوجد سوى موضوع واحد ، ولا توجد مؤشرات ترابط متعددة تتناول نفس المورد.
مثال رمز:
الفئة العامة SingleThread {int num = 10 ؛ public void add () {بينما (num <13) {num ++ ؛ try {thread.sleep (1000) ؛} catch (استثناء e) {system.out.println ("interrupt") ؛} system.out.println (num) ؛ // احصل على Thread.setName Running Thread Thread. // Thread Rename System.out.println (thread.getName ()+"Running") ؛ SingleThread St = New SingleThread () ؛ St.add () ؛}}سلامة متعددة مؤشرات الترابط ، كتل التعليمات البرمجية المتزامنة
متزامن (كائن) {} ؛ // كتلة الكود المتزامن
name method name () {} ؛ // طريقة متزامنة
الفئة الأولى {int num = 10 ؛ void public add () {synchronized (this) {// sync code clochs ، يمكن أن تحقق طريقة المزامنة أيضًا تأثير الفراغ المتزامن add () {} ؛ num ++ ؛ حاول {thread.sleep (1000) ؛ } catch (interruptedException e) {system.out.println ("interrupted") ؛ } system.out.println (num) ؛ }}} class اثنين من الأدوات runnable {one one = new One () ؛ Override public void run () {one.add () ؛ // استدعاء طريقة إضافة}} الفئة العامة synch {public static void main (string [] args) {two = new two () ؛ الموضوع T1 = موضوع جديد (اثنان) ؛ // إنشاء ثلاثة مؤشرات ترابط طفل T2 = مؤشر ترابط جديد (اثنان) ؛ الموضوع T3 = موضوع جديد (اثنان) ؛ t1.start () ؛ t2.start () ؛ t3.start () ؛ }}ملاحظة: لاحظ الفرق في نتائج تشغيل الكلمات الرئيسية المتزامنة!
نتائج التشغيل العادية:
11
12
13