pthread_attr_setscope(3)

الاسم
pthread_attr_setscope, pthread_attr_getscope - تعيين/الحصول على سمة نطاق التنافس في كائن سمات الخيط

المكتبة
مكتبة مسالك POSIX (libpthread، -lpthread)

موجز
#include <pthread.h>

int pthread_attr_setscope(pthread_attr_t *attr, int scope);
int pthread_attr_getscope(const pthread_attr_t *restrict attr,
                          int *restrict scope);

الوصف
تضبط الدالة pthread_attr_setscope() سمة نطاق التنافس لكائن سمات الخيط المشار إليه بواسطة attr إلى القيمة المحددة في scope. تُعرّف سمة نطاق التنافس مجموعة الخيوط التي يتنافس ضدها خيط للحصول على موارد مثل وحدة المعالجة المركزية. يحدد POSIX.1 قيمتين محتملتين لـ scope:

PTHREAD_SCOPE_SYSTEM
    يتنافس الخيط على الموارد مع جميع الخيوط الأخرى في جميع العمليات على النظام الموجودة في نفس نطاق تخصيص الجدولة (مجموعة من معالج واحد أو أكثر). تُجدول خيوط PTHREAD_SCOPE_SYSTEM بالنسبة لبعضها البعض وفقًا لسياسة الجدولة والأولوية الخاصة بها.

PTHREAD_SCOPE_PROCESS
    يتنافس الخيط على الموارد مع جميع الخيوط الأخرى في نفس العملية التي أُنشئت أيضًا بنطاق تنافس PTHREAD_SCOPE_PROCESS. تُجدول خيوط PTHREAD_SCOPE_PROCESS بالنسبة للخيوط الأخرى في العملية وفقًا لسياسة الجدولة والأولوية الخاصة بها. يترك POSIX.1 غير محدد كيفية تنافس هذه الخيوط مع الخيوط الأخرى في عمليات أخرى على النظام أو مع خيوط أخرى في نفس العملية أُنشئت بنطاق تنافس PTHREAD_SCOPE_SYSTEM.

يتطلب POSIX.1 أن يدعم التنفيذ واحدًا على الأقل من نطاقات التنافس هذه. يدعم لينكس PTHREAD_SCOPE_SYSTEM، لكنه لا يدعم PTHREAD_SCOPE_PROCESS.

على الأنظمة التي تدعم نطاقات تنافس متعددة، ولكي يكون لإعداد المعامل الذي تجريه pthread_attr_setscope() تأثير عند استدعاء pthread_create(3)، يجب على المستدعي استخدام pthread_attr_setinheritsched(3) لتعيين سمة وراثة الجدولة لكائن السمات attr إلى PTHREAD_EXPLICIT_SCHED.

تُرجع الدالة pthread_attr_getscope() سمة نطاق التنافس لكائن سمات الخيط المشار إليه بواسطة attr في المخزن المؤقت المشار إليه بواسطة scope.

قيمة الإرجاع
عند النجاح، تُعيد هذه الدوال القيمة 0؛ وعند الخطأ، تُعيد رقم خطأ غير صفري.

الأخطاء
قد تفشل pthread_attr_setscope() مع الأخطاء التالية:

EINVAL
    حُددت قيمة غير صالحة في scope.

ENOTSUP
    حدد scope القيمة PTHREAD_SCOPE_PROCESS، وهي غير مدعومة على لينكس.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
pthread_attr_setscope(), pthread_attr_getscope() | سلامة الخيوط | MT-Safe

المعايير
POSIX.1-2008.

التاريخ
POSIX.1-2001.

ملاحظات
يشير نطاق التنافس PTHREAD_SCOPE_SYSTEM عادةً إلى أن خيط مساحة المستخدم مرتبط مباشرة بكيان جدولة نواة واحد. هذا هو الحال على لينكس لتنفيذ LinuxThreads القديم وتنفيذ NPTL الحديث، وكلاهما تنفيذان للخيوط بنسبة 1:1.

يحدد POSIX.1 أن نطاق التنافس المبدئي مُعرّف بواسطة التنفيذ.

انظر أيضًا
pthread_attr_init(3), pthread_attr_setaffinity_np(3), pthread_attr_setinheritsched(3), pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3), pthread_create(3), pthreads(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.