ریسه های پازیکس ( به انگلیسی: POSIX threads ) ( یا به اختصار pthreads ) اشاره به تعدادی رابط برنامه نویسی نرم افزار در استاندارد پازیکس دارد که برای کار با ریسه ها در نظر گرفته شده اند. در سیستم عامل های سازگار با این استاندارد مانند فری بی اس دی، اپن بی اس دی، نت بی اس دی، لینوکس، سولاریس و . . . ، پیاده سازی های مختلفی از این رابط های برنامه نویسی وجود دارد. این رابط های برنامه نویسی در یک فایل سرآیند به نام pthreads. h تعریف شده اند. این فایل حاوی تعداد تابع، نوع داده و تعدادی ثوابت است. حدوداً صد عدد روال مختلف برای کار با ریسه ها فراهم شده که نام تمام آنها با pthread_ شروع می شود. این روال ها را می توان به چهار دسته تقسیم کرد:
• مدیریت ریسه ها - ایجاد، اتصال و . . .
• mutex ها
• متغیرهای شرطی
• همگام سازی
#include < pthread. h> #include < stdio. h> #include < stdlib. h> #include < assert. h> #define NUM_THREADS 5 void *TaskCode ( void *argument ) { int tid; tid = * ( ( int * ) argument ) ; printf ( " Hello World! It' s me, thread %d!\n" , tid ) ; /* optionally: insert more useful stuff here */ return NULL; } int main ( void ) { pthread_t threads; int thread_args; int rc, i; /* create all threads */ for ( i=0; i< NUM_THREADS; ++i ) { thread_args = i; printf ( " In main: creating thread %d\n" , i ) ; rc = pthread_create ( & threads, NULL, TaskCode, ( void * ) & thread_args ) ; assert ( 0 == rc ) ; } /* wait for all threads to complete */ for ( i=0; i< NUM_THREADS; ++i ) { rc = pthread_join ( threads, NULL ) ; assert ( 0 == rc ) ; } exit ( EXIT_SUCCESS ) ; } این برنامه پنج ریسه ایجاد کرده که هر کدام با صدا زدن تابعی به نام TaskCode شماره منحصربه فرد هر ریسه را در خروجی استاندارد چاپ می کنند. برای کامپایل این برنامه، کامپایلر باید با پارامتر - pthread فراخوانی شود.
بیشتر از ۱۰۰ تابع برای کار با ریسه ها در نظر گرفته شده است. نوع pthread_t برای نگه داری شماره ID ریسه مورد نظر استفاده می شود. نوع pthread_mutex_t هم برای برقراری انحصار متقابل و استفاده از mutex ها استفاده می شود.
int pthread_create ( pthread_t *thread, const pthread_attr_t *attr, void * ( *start_routine ) ( void * ) , void *arg ) این رویه یک ریسه جدید ایجاد می کند. thread اشاره گری به یک ساختمان pthread_t است که TID ریسه مورد نظر در آن قرار خواهد گرفت. attr ویژگی های ریسه را مشخص می کند. برای استفاده از صفات پیشرفض می توان به جای آن NULL قرار داد. start_routine اشاره گر به تابعی است که به محض اجرای شدن ریسه فراخوانی می شود. این تابع یک آرگومان void* دریافت می کند و مقدار برگشتی آن هم از همین نوع است. arg آرگومان این تابع را مشخص می کند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف• مدیریت ریسه ها - ایجاد، اتصال و . . .
• mutex ها
• متغیرهای شرطی
• همگام سازی
#include < pthread. h> #include < stdio. h> #include < stdlib. h> #include < assert. h> #define NUM_THREADS 5 void *TaskCode ( void *argument ) { int tid; tid = * ( ( int * ) argument ) ; printf ( " Hello World! It' s me, thread %d!\n" , tid ) ; /* optionally: insert more useful stuff here */ return NULL; } int main ( void ) { pthread_t threads; int thread_args; int rc, i; /* create all threads */ for ( i=0; i< NUM_THREADS; ++i ) { thread_args = i; printf ( " In main: creating thread %d\n" , i ) ; rc = pthread_create ( & threads, NULL, TaskCode, ( void * ) & thread_args ) ; assert ( 0 == rc ) ; } /* wait for all threads to complete */ for ( i=0; i< NUM_THREADS; ++i ) { rc = pthread_join ( threads, NULL ) ; assert ( 0 == rc ) ; } exit ( EXIT_SUCCESS ) ; } این برنامه پنج ریسه ایجاد کرده که هر کدام با صدا زدن تابعی به نام TaskCode شماره منحصربه فرد هر ریسه را در خروجی استاندارد چاپ می کنند. برای کامپایل این برنامه، کامپایلر باید با پارامتر - pthread فراخوانی شود.
بیشتر از ۱۰۰ تابع برای کار با ریسه ها در نظر گرفته شده است. نوع pthread_t برای نگه داری شماره ID ریسه مورد نظر استفاده می شود. نوع pthread_mutex_t هم برای برقراری انحصار متقابل و استفاده از mutex ها استفاده می شود.
int pthread_create ( pthread_t *thread, const pthread_attr_t *attr, void * ( *start_routine ) ( void * ) , void *arg ) این رویه یک ریسه جدید ایجاد می کند. thread اشاره گری به یک ساختمان pthread_t است که TID ریسه مورد نظر در آن قرار خواهد گرفت. attr ویژگی های ریسه را مشخص می کند. برای استفاده از صفات پیشرفض می توان به جای آن NULL قرار داد. start_routine اشاره گر به تابعی است که به محض اجرای شدن ریسه فراخوانی می شود. این تابع یک آرگومان void* دریافت می کند و مقدار برگشتی آن هم از همین نوع است. arg آرگومان این تابع را مشخص می کند.

wiki: ریسه های پازیکس