0Pricing
C Academy · درس

إنشاء الخيوط وإدارتها

استخدموا خيوط POSIX ‏(pthread) لإنشاء الخيوط والتحكم فيها في C

إنشاء الخيوط وإدارتها درس مجاني في C Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 3 دروس في المجموع.

إنشاء الخيوط وإدارتها

إنشاء الخيوط وإدارتها

في تعدد الخيوط، ننشئ عدة خيوط لتنفيذ المهام بشكل متزامن.

في هذا الدرس، ستتعلمون:

  • كيفية إنشاء عدة خيوط في C.
  • كيفية الانتظار حتى تنتهي الخيوط من التنفيذ.
  • كيفية تمرير الوسائط إلى الخيوط.
إنشاء الخيوط وإدارتها — رسم توضيحي 1

إنشاء عدة خيوط

إنشاء عدة خيوط

نستخدم pthread_create() لإنشاء عدة خيوط.

الصيغة:

pthread_create(&thread, NULL, function, argument);

يعمل كل خيط بشكل مستقل، لكنه يتشارك الذاكرة مع الخيوط الأخرى.

مثال: إنشاء عدة خيوط

مثال: إنشاء عدة خيوط

ينشئ هذا البرنامج عدة خيوط تعمل بشكل متزامن.

#include <stdio.h>
#include <pthread.h>

void *printMessage(void *arg) {
    printf("Thread %d: Hello from thread!\n", *(int*)arg);
    return NULL;
}

int main() {
    pthread_t threads[3];
    int thread_ids[3] = {1, 2, 3};

    for (int i = 0; i < 3; i++) {
        pthread_create(&threads[i], NULL, printMessage, &thread_ids[i]);
    }

    for (int i = 0; i < 3; i++) {
        pthread_join(threads[i], NULL);
    }
    return 0;
}

الانتظار حتى انتهاء الخيوط

الانتظار حتى انتهاء الخيوط

استخدموا pthread_join() للانتظار حتى يكتمل تنفيذ خيط.

الصيغة:

pthread_join(thread, NULL);

من دون pthread_join()، قد ينتهي الخيط الرئيسي قبل انتهاء الخيوط الأخرى.

تمرير الوسائط إلى الخيوط

تمرير الوسائط إلى الخيوط

يمكن تمرير الوسائط إلى دالة الخيط باستخدام مؤشر.

مثال:

pthread_create(&thread, NULL, function, (void*)&value);

تحوّل دالة الخيط الوسيط مرة أخرى إلى نوعه الأصلي.

مثال: تمرير الوسائط إلى الخيوط

مثال: تمرير الوسائط إلى الخيوط

يوضح هذا البرنامج كيفية تمرير الوسائط إلى دالة خيط.

#include <stdio.h>
#include <pthread.h>

void *printNumber(void *arg) {
    int num = *(int*)arg;
    printf("Thread received number: %d\n", num);
    return NULL;
}

int main() {
    pthread_t thread;
    int value = 10;
    pthread_create(&thread, NULL, printNumber, &value);
    pthread_join(thread, NULL);
    return 0;
}

إنهاء خيط

إنهاء خيط

استخدموا pthread_exit() لإنهاء خيط صراحةً.

مثال:

pthread_exit(NULL);

ينبغي للدالة الرئيسية أيضًا استدعاء pthread_exit() عند الحاجة.

أفضل الممارسات لإدارة الخيوط

أفضل الممارسات لإدارة الخيوط

لإدارة الخيوط بكفاءة:

  • استخدموا دائمًا pthread_join() لتجنب الإنهاء المبكر.
  • مرروا الوسائط باستخدام المؤشرات لتجنب تلف البيانات.
  • قللوا تعارضات الموارد المشتركة.

الملخص

الملخص

في هذا الدرس، تعلمتم:

  • كيفية إنشاء عدة خيوط باستخدام pthread_create().
  • كيفية الانتظار حتى انتهاء الخيوط باستخدام pthread_join().
  • كيفية تمرير الوسائط إلى الخيوط.
  • كيفية إنهاء خيط بأمان.

سنستكشف بعد ذلك المزامنة وظروف التنافس في تعدد الخيوط!

إنشاء الخيوط وإدارتها — رسم توضيحي 10

الأسئلة الشائعة

هل درس «إنشاء الخيوط وإدارتها» مجاني؟

نعم — نص درس «إنشاء الخيوط وإدارتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 3 دروس في المجموع.

ماذا ستتعلم في «إنشاء الخيوط وإدارتها»؟

استخدموا خيوط POSIX ‏(pthread) لإنشاء الخيوط والتحكم فيها في C تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟

لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.

كم من الوقت يستغرق درس «إنشاء الخيوط وإدارتها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟

نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى الخيوط
  2. إنشاء الخيوط وإدارتها
  3. المزامنة وظروف التسابق
← العودة إلى C Academy