English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java synchronized التحميل المضبوط-السطر يمكن الدخول مرة أخرى
مثال على الكود:
public class ReGetLock implements Runnable { @Override public void run() { get(); } public synchronized void get() { System.out.println(Thread.currentThread().getId()); set(); } public synchronized void set() { System.out.println(Thread.currentThread().getId()); } public static void main(String[] args) { ReGetLock rgl = new ReGetLock(); new Thread(rgl).start(); } }
هل يمكن للسطر الذي يشغل الكود الدخول إلى الطريقة المزمع كلمة مفتاحية synchronized؟
بسبب أن سطر التشغيل rgl قد استدعى بالفعل طريقة get، لقد حصل على قفل ReGetLock، لذا عندما يحاول سطر rgl الدخول إلى طريقة مشمولة بكلمة مفتاحية synchronized، سيتم حظره وسينتظر إلى الأبد؟
في الواقع، لن يحدث ذلك، في JAVAعندما يحاول سطر معين الحصول على قفل تم امتلاكه من قبل نفسه، فإن الطلب سيتم بنجاح. وإلا سيحدث عائق.
بالتأكيد، مثل آلية التزامن مثل synchronized، يمكن لل线程 الدخول مرة أخرى.
شكرًا على القراءة، آمل أن تساعدكم، شكرًا لدعمكم لهذا الموقع!