ورود

نسخه کامل مشاهده نسخه کامل : كتابخانه thread در لينوكس



mahmood-gt2
19-04-2007, 11:21
با سلام...
كتابخانه thread در لينوكس چي هست؟ مثل اين كه براي كامپايل با g++ لازم هست كه اسم كتابخانه داده بشه. شما مي دونيد؟

Bayazee
19-04-2007, 14:15
سلام
pthread.h

mahmood-gt2
19-04-2007, 15:18
مرسي ولي چه جوري اضافش كنم. syntaxش چيه؟

hamidreza_buddy
19-04-2007, 16:04
یه برنامۀ نمونه برات می ذارم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای کامپایلش دستور زیر رو در شل وارد کن:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید[/b]

فایل اجرایی برنامه a.out است. برای اجرای آن دستور زیر را وارد کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خروجی به صورت زیر خواهد بود:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

hamidreza_buddy
19-04-2007, 16:19
مبانی ریسمان ها (thread) در لینوکس(linux):
POSIX THREADS آموزش فارسی

*اعمالی که روی thread ها می توان انجام داد عبارتند از: ساختن thread ، از بین بردن thread، همزمانی (Syncronization)، زمانبندی (Scheduling) ، مدیریت داده ها (data management) و ارتباط بین پروسس ها (process interaction).
*یک thread ، thread بوجود آورندۀ خود را نمی شناسد.
* همۀ thread های ایجاد شده از یک پروسس، در یک فضای آدرس دهی قرار دارند.
* thread های درون یک پروسس موارد زیر را به صورت مشترک دارا هستند:
1- دستورات پروسس
2- داده ها
3- فایل هایی که در آن پروسس باز هستند (descriptors)
4- سیگنال ها و هندل های سیگنال
5- پوشۀ فعلی پروسس
6- user و group id

*هر thread موارد زیر را به صورت unique دارد.
1- ID
2- مجموعه ای از رجیسترها، اشاره گر استک
3- استکی برای متغییرهای محلی، و برای مقادیر بازگشتی
4- signal mask
5- اولویت (priority)
6- مقدار بازگشتی : errno
* تمامی توابع کتابخانۀ pthread در صورت عدم وجود مشکل مقدار "0" برمی گردانند.


چند نکته:
1- در برنامۀ بالا از یک تابع یکسان برای اجرای دو ریسمان استفاده کرده ایم. با این حال آرگومان ها متفاوتند. البته توجه کنید که برای هر ریسمانی می توان یک تابع دلخواه داشت.
2- ریسمان ها را می توان بوسیلۀ فراخوانی تابع pthread_exit پایان داد. همچنین می توان با فراخوانی return در تابع و همچنین با فراخوانی exit (که خود پروسس و تمام ریسمان های آن را ازبین می برد) آن را پایان داد.

تابع pthread_create

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این تابع ریسمان را ایجاد کرده و سپس تابع تعیین شده را همراه با آرگومان اجرا می کند.

تابع pthread_join نیز اجرای ریسمان صدا زننده را تا زمان پایان یافتن ریسمان جدید متوقف می کند.
هدف از اجرای این تابع در این برنامه این است که ممکن است ریسمان ها به صورت کامل اجرا نشده باشند و اگر برنامه به exit برسد همۀ این ریسمان با اینکه ناقص اجرا شده اند ولی از بین می روند. استفاده از این توابع باعث متوقف شدن برنامه تا زمان پایان یافتن این دو ریسمان می شود.

mahmood-gt2
20-04-2007, 11:16
ممنون دستت درد نكنه...

sh22709
26-05-2014, 10:21
سلام من واسه آز سیستم عامل باید یه مقاله 15 صفحه ای از theard در لینوکس ارائه بدم ولی مقاله فارسی توی نت نیست و همه زبان اصلی.شما مقاله ای دارید که کمکم کنه.ممنون