PDA

View Full Version : Threads in Linux



جمعه 14 فروردین 1383, 02:39 صبح
با سلام
من یه برنامه MultiThread نوشتم
توی اون تنظیم کردم که یکی از Thread ها زودتر از بقیه اجرا شود
تحت ویندوز همه چیز درسته اما تحت لینوکس بازم کار خودش رو میکنه
با تشکر

جمعه 14 فروردین 1383, 02:59 صبح
شرمنده من با یه سرچ در گوگل به جوابم رسیدم
اصلا لینوکس با این موضوع مشکل داره به این لینک توجه کنید
http://www.jguru.com/faq/view.jsp?EID=247295
با تشکر

Inprise
جمعه 14 فروردین 1383, 03:01 صبح
برادر کیومرث
اصولا" حق تقدم در ریسمانهای جاوا ، روی لینوکس نادیده گرفته میشه . یعنی هر چه کد برای تغییر و مدیریت حقوق تقدم ریسمانها بنویسی ضمن اینکه بدون مشکل اجرا میشن اما اعمال نمیشن . این نقطه ضعف نیست . اصولا" ساختار لینوکس با ویندوز فرق میکنه و در محیط لینوکس قراره برنامه ها ( و تمام پردازه ها و ریسمانهای هر برنامه ) به میزان خاصی از توان پردازنده استفاده کنن و این "فقط" مدیر سیستم ( یا فردی با حقوق اون ) هست که میتونه تعیین کنه فلان ریسمان در فلان پردازه از فلان برنامه چقدر حق مصرف توان پردازنده رو داره . بنابراین JDK ضمن اینکه به کد تو احترام میگذاره ، سعی میکنه اساس و قاعده لینوکس رو زیر پا نذاره ، پس تنظیمات مربوط به حق تقدم ریسمانها در "همه برنامه های مبتنی بر لینوکس" توسط دستورات مربوطه و بوسیلهء مدیر سیستم اعمال میشن و از داخل جاوا امکان تغییر Priority بصورت عملیاتی نیست . میتونی از JNI استفاده کنی و کد "مخصوص به لینوکس"ی بنویسی که با تشخیص نوع سیستم عامل ، اگر لینوکس بود ، با دستورات مدیریتی لینوکس میزان Priority ریسمان مورد نظرت رو تغییر بده .

موفق باشی :)
Java Enabled Inpy

Inprise
جمعه 14 فروردین 1383, 03:02 صبح
بله جوابی که بهش رسیدی درسته . من قبل از اینکه این جواب رو بنویسی شروع به ارسال جواب خودم کردم :)

جمعه 14 فروردین 1383, 03:11 صبح
دستت درد نکنه :D
فقط یه سوال
در مورد JNI دارم که تو یه تاپیکه دیگه می پرسم
باز هم ممنون