PDA

View Full Version : سوال: ایجاد یک یا چند thread در زمان اجرای برنامه و استفاده همه آنها از یک تابع



group45
سه شنبه 29 اردیبهشت 1394, 22:42 عصر
با سلام و خسته نباشید
من میخوام تو برنامم در زمان اجرای برنامه و بسته به اون تعداد که متغیره thread ایجاد بشه و همگی از یک تابع استفاده کنند
آیا چنین چیزی شدنی است؟

ebrahim.rayatparvar
سه شنبه 29 اردیبهشت 1394, 23:27 عصر
سلام
منظورتون رو کمی بد توضیح دادین میشه کمی شفاف تر سوالتون رو بگید؟

RmeXXXXXXXXX
چهارشنبه 30 اردیبهشت 1394, 13:52 عصر
بله!
بزرگترین مزیتش همینه!
اصلاً اصل چند نخی یه جورایی به همین موضوع ربط داره!
100 درصد میشه
زمینه های کاری زیادی در این رابطه وجود دارن. مثلا قفلی که باید شکسته بشه در اصل یک تابع (الگوریتم) است که روی یک یا گروهی از کامپیوترها بصورت همزمان اجرا میشه ( مباحث MPI)
مسائل زیادی رو هنگام چند نخی باید در نظر بگیرین ک حتی یه اشتباه کوچک (مثل جابجا شدن موقعیت دو خط برنامه) میتونه کل سیستم رو با مشکل روبه رو کنه.
مثلاً نحوه مدیریت صحیح منابع! (قفل گذاری ها، مانیتورینگ، سمافور و ... ) کم دقتی باعث بن بست و یا گرسنگی میشه. مساله تبادل پیام یا همون ارتباط بین نخ ها (یا پروسه ها در حالت توزیع شده - روی چندتا سیستم)
و ...
همیشه مسایل همزمانی پیچیدگی های زیادی داره... مواظب باش ک کد خوبی بنویسی - قبل از هرچیزی مطالعه

group45
چهارشنبه 30 اردیبهشت 1394, 17:07 عصر
یه تابع بازگشتی نوشتم که قراره دایرکتوری هارد رو دربیاره ولی چند تا مشکل داره
اولا برنامه یه جورایی تا پایان اسکن هنگه
دوما نمیشه doevent گذاشت آخه اخطار پر شدن stack میده
سوم اینکه زمان زیادی می گیره (حدودا 30 ثانیه) واسه اسکن
حالا
میخوام به تعداد درایو ها در زمان اجرای برنامه ترد بسازم و همشون با یه تابع کار کنن و هر ترد یه درایو رو اسکن کنه

Javad_raouf
چهارشنبه 30 اردیبهشت 1394, 20:21 عصر
همونجور که دوستان گفتن امکانش هست و قشنگیش همینه
من فقط می خواستم عرض کنم بهتره از توابع بازگشتی استفاده نکنید
خیلی راحت می تونید با یک لیست یا یک استک تابع بازگشتی رو شبیه سازی کنید
هم سرعتش بیشتره هم StackOverFlow نمیده