دانلود کتاب Java Threads (به فارسی: موضوعات جاوا) نوشته شده توسط «Scott Oaks – Henry Wong»
اطلاعات کتاب موضوعات جاوا
موضوع اصلی: برنامه نویسی: زبان های برنامه نویسی
نوع: کتاب الکترونیکی
ناشر: O’Reilly & Associates
نویسنده: Scott Oaks – Henry Wong
زبان: English
فرمت کتاب: pdf (قابل تبدیل به سایر فرمت ها)
سال انتشار: 2004
تعداد صفحه: 309
حجم کتاب: 3 مگابایت
کد کتاب: 9780596007829 , 0596007825
نوبت چاپ: 3rd ed
توضیحات کتاب موضوعات جاوا
این کتاب ادعاهای زیر را مطرح می کند که تا آنجا که من می بینم به دلایل ذکر شده کاملاً بی اساس هستند:
> یک ماشین مجازی جاوا برای پیاده سازی یک زمانبندی پیشگیرانه و مبتنی بر اولویت مورد نیاز است
کلمه “پیشگیرانه” در JLS ظاهر نمی شود.
> ماشین مجازی جاوا هرگز اولویت یک رشته را تغییر نمی دهد، حتی اگر موضوع برای مدت زمان مشخصی در حال اجرا باشد.
اون رو هم جایی پیدا نمیشه
> قرارداد بین ماشین مجازی جاوا و سیستم عامل زیربنایی این است که سیستم عامل به طور کلی باید انتخاب کند تا رشته جاوا را با بالاترین اولویت اجرا کند.
“قرارداد” بین کد جاوا و JVM است، نه JVM و O/S.
> وقتی می گوییم جاوا یک زمانبندی مبتنی بر اولویت را پیاده سازی می کند، منظور ما همین است
اصلاً جاوا برای «پیادهسازی» زمانبندی لازم نیست.
> این زمانبندی به صورت پیشگیرانه پیادهسازی میشود، به این معنی که وقتی یک رشته با اولویت بالاتر همراه میشود، آن رشته هر رشته با اولویت پایینتری را که در آن زمان اجرا میشود، قطع میکند (پیشگیری میکند).
این در هیچ کجای JLS ظاهر نمی شود.
> با این حال، قرارداد با سیستم عامل مطلق نیست، به این معنی که سیستم عامل گاهی اوقات می تواند یک رشته با اولویت پایین تر را اجرا کند.
به عبارت دیگر +not+ پیشگیرانه است. تصمیمت را بگیر
> الزامات جاوا برای مکانیسم زمانبندی پیشگیرانه مبتنی بر اولویت …
که هیچ جا پیدا نمی شود.
> یک رشته جاوا می تواند یکی از ۱۱ اولویت را داشته باشد
MIN_PRIORITY 1 است، MAX_PRIORITY 10 است: این 10 است نه 11.
> در واقع، preemption فقط به این معنی است که یک رشته با اولویت بالاتر به جای یک موضوع با اولویت پایین تر اجرا شود.
نه اینطور نیست. این بدان معنی است که وقتی یک رشته با اولویت بالاتر آماده می شود، از اجرای هر رشته با اولویت پایین تر که در حال حاضر بدون توجه به برش زمانی و غیره در حال اجرا هستند، جلوگیری می کند. پیاده سازی.
با وجود این خطاهای فاحش نمی توان این کتاب را توصیه کرد. کتاب داگ لی همان طور که دیگر منتقدان توصیه می کنند، کتابی است که باید دنبالش رفت.
> A Java virtual machine is required to implement a preemptive, priority-based scheduler
The word ‘pre-emptive’ does not appear in the JLS.
> The Java virtual machine never changes the priority of a thread, even if the thread has been running for a certain period of time
Can’t find that anywhere either.
> the contract between the Java virtual machine and the underlying operating system is that the operating system must generally choose to run the Java thread with the highest priority
The ‘contract’ is between the Java code and the JVM, not the JVM and the O/S.
> That’s what we mean when we say that Java implements a priority-based scheduler
Java isn’t required to ‘implement’ a scheduler at all.
> This scheduler is implemented in a preemptive fashion, meaning that when a higher-priority thread comes along, that thread interrupts (preempts) whatever lower-priority thread is running at the time.
This appears nowhere in the JLS.
> The contract with the operating system, however, is not absolute, which means that the operating system can sometimes choose to run a lower-priority thread.
In other words it’s +not+ pre-emptive. Make up your mind.
> Java’s requirement for a priority-based, preemptive scheduling mechanism …
Which is nowhere to be found.
> A Java thread can have one of 11 priorities
MIN_PRIORITY is 1, MAX_PRIORITY is 10: that makes 10, not 11.
> In fact, preemption means only that a higher-priority thread runs instead of a lower-priority one
No it doesn’t. It means that when a higher-priority thread becomes ready it pre-empts the execution of any lower-priority threads that are currently executing regardless of time-slice etc. This is a feature of real-time systems that Java is +not+ required to implement.
This book cannot be recommended in the presence of these egregious errors. Doug Lea’s book as recommended by other reviewers is the one to go for.
برای دریافت کد تخفیف ۲۰ درصدی این کتاب، ابتدا صفحه اینستاگرام کازرون آنلاین (@kazerun.online ) را دنبال کنید. سپس، کلمه «بلیان» را در دایرکت ارسال کنید تا کد تخفیف به شما ارسال شود.