"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > التزامن الموضوع في جافا

التزامن الموضوع في جافا

تم النشر بتاريخ 2024-11-19
تصفح:224

Thread Concurrency In Java

يتيح تزامن سلاسل المحادثات أو تعدد مؤشرات الترابط في Java المتقدمة تنفيذ سلاسل رسائل متعددة بشكل متزامن، مما يعزز الأداء والاستجابة في التطبيقات المعقدة. وفيما يلي تفصيل موجز للمفاهيم والمرافق الأساسية.

الميزات الرئيسية لتعدد العمليات في جافا:

  1. إنشاء المواضيع.
  2. إدارة الموضوع مع المنفذين
  3. أدوات مساعدة للتزامن
  4. إطار عمل الشوكة/الانضمام
  5. البرمجة غير المتزامنة ذات المستقبل الكامل

1️⃣ إنشاء المواضيع.

  • توسيع الموضوع: قم بإنشاء موضوع جديد عن طريق تجاوز طريقة التشغيل ().

  • تنفيذ Runnable: تمرير مثيل قابل للتشغيل إلى كائن Thread.

  • تنفيذ Callable: على عكس Runnable، يسمح Callable للسلاسل بإرجاع نتيجة ومعالجة الاستثناءات المحددة.

2️⃣ إدارة الموضوع مع المنفذين.

  • يدير إطار تنفيذ Java (java.util.concurrent.ExecutorService) تجمعات مؤشرات الترابط، مما يسمح بمعالجة المهام بكفاءة.

  • يقوم المنفذون مثل FixedThreadPool وCachedThreadPool بإنشاء مجموعة من سلاسل الرسائل القابلة لإعادة الاستخدام، وإدارتها بكفاءة لتقليل الحمل الزائد لإنشاء سلاسل رسائل جديدة.

3️⃣ أدوات التزامن

  • الأقفال: توفر آليات القفل المتقدمة مثل ReentrantLock مرونة أكبر من الطرق المتزامنة، مما يسمح بأقفال موقوتة وغير قابلة للمقاطعة.

  • المتغيرات الذرية: تتضمن الحزمة java.util.concurrent.atomic فئات ذرية (AtomicInteger، AtomicLong) التي توفر خيطًا خاليًا من القفل-
    العمليات الآمنة.

  • المزامنات: تتضمن أدوات مساعدة مثل:
    CountDownLatch: السماح لسلسلة المحادثات بالانتظار حتى تكتمل سلاسل المحادثات الأخرى
    المهام.
    CyclicBarrier: مزامنة عدد ثابت من المواضيع في
    مشترك نقطة الحاجز.
    الإشارة: يتحكم في الوصول إلى الموارد عن طريق السماح برقم محدد
    من المواضيع المتزامنة.

4️⃣ إطار عمل الشوكة/الانضمام

  • 1. بالنسبة لمهام فرق تسد، يقوم ForkJoinPool بتقسيم المهمة إلى مهام فرعية أصغر تتم معالجتها بالتوازي، وهو مفيد بشكل خاص في الخوارزميات العودية.

5️⃣ البرمجة غير المتزامنة مع مستقبل كامل

  • يتيح برنامج CompleteableFuture البرمجة غير المتزامنة وغير المحظورة، مما يسمح بتسلسل المهام والجمع بينها لسير العمل المعقد.

استخدام مثال لموضوع

استدعاء الطبقة الرئيسية لموضوعين مختلفين

public class ThreadConcurrence {
    public static void main(String[] args) {
        // There is 2 type you have to call thread method
                //1- Extend Thread class
                //1- Implements Runnable class
        // why Implement concept is introduce here
                // because in java multiple thread dose not support that's so why implement class will introduce
                // ex- when u extend (inherit) base call, then at that time this call can not extend another Thread class.
        int n = 10;
        for (int i = 0; i 



Thread1--(يمتد الموضوع)

public class Thread1 extends Thread{
    //If you are extend Thread class then you  most be used run()
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread1 is running now....");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Thread2--(ينفذ قابل للتشغيل)

public class Thread2 implements Runnable {
    //IF you are implement thread Then run() will be executed.
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread2 is running.......");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

خاتمة :

من خلال الاستفادة من هذه الأدوات وأطر العمل، تتيح تقنية Java المتعددة المتقدمة إنشاء تطبيقات قابلة للتطوير وعالية الأداء يمكنها التعامل مع المهام المتزامنة بسلاسة.

لمزيد من الأفكار، لا تتردد في ذكر Linkedin وGitHub للحصول على أمثلة متعمقة ونماذج التعليمات البرمجية! اسمحوا لي أن أعرف إذا كنت تريد أي تعديلات محددة.

لينكد إن: https://www.linkedin.com/in/pravanjan-17p/

جيثب: https://github.com/Prabhanjan-17p

بيان الافراج تم نشر هذه المقالة على: https://dev.to/pravanjan17p/thread-concurrency-in-java-idb?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3