کتاب صوتی استاد شوید در برنامه‌نویسی همزمان جاوا: ساخت اپلیکیشن‌های مقیاس‌پذیر و ایمن از نظر نخ

استاد شوید در برنامه‌نویسی همزمان جاوا: ساخت اپلیکیشن‌های مقیاس‌پذیر و ایمن از نظر نخ استاد شوید در برنامه‌نویسی همزمان جاوا: ساخت اپلیکیشن‌های مقیاس‌پذیر و ایمن از نظر نخ آیا می‌خواهید قدرت واقعی زبا...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 124,963 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره استاد شوید در برنامه‌نویسی همزمان جاوا: ساخت اپلیکیشن‌های مقیاس‌پذیر و ایمن از نظر نخ

موضوع کلی: برنامه‌نویسی همزمان و موازی

موضوع میانی: اصول و الگوهای همزمانی در جاوا

📋 سرفصل‌های دوره

  • 1. مقدمه‌ای بر همزمانی: چرا و چگونه؟
  • 2. تفاوت همزمانی (Concurrency) و موازی‌کاری (Parallelism)
  • 3. فرآیندها و نخ‌ها (Threads) در جاوا
  • 4. ایجاد و مدیریت نخ‌ها: کلاس Thread و رابط Runnable
  • 5. چرخه حیات یک نخ: New, Runnable, Blocked, Waiting, Timed_Waiting, Terminated
  • 6. خطرات همزمانی: آشنایی با ایمنی نخ (Thread Safety)
  • 7. مفهوم رقابت (Race Condition) و مثال‌های عملی
  • 8. اتمیسیته (Atomicity): عملیات تجزیه‌ناپذیر
  • 9. مشکلات رویت‌پذیری (Visibility) در حافظه مشترک
  • 10. مشکلات ترتیب‌دهی مجدد (Reordering) توسط کامپایلر و CPU
  • 11. قفل‌گذاری ذاتی (Intrinsic Locking): کلمه کلیدی synchronized
  • 12. استفاده از synchronized روی متدها
  • 13. استفاده از بلاک‌های synchronized و انتخاب مانیتور قفل
  • 14. مفهوم Reentrancy در قفل‌های ذاتی جاوا
  • 15. کلمه کلیدی volatile و تضمین رویت‌پذیری
  • 16. رابطه happens-before و نقش volatile
  • 17. ارتباط volatile با اتمیسیته: چه چیزی را تضمین نمی‌کند؟
  • 18. استراتژی‌های ایمنی نخ: محصورسازی، تغییرناپذیری و محبوس‌سازی
  • 19. طراحی کلاس‌های تغییرناپذیر (Immutable Objects)
  • 20. نقش کلیدی کلمه final در ساخت آبجکت‌های تغییرناپذیر
  • 21. محبوس‌سازی نخ (Thread Confinement)
  • 22. استفاده از Ad-hoc confinement و Stack confinement
  • 23. کلاس ThreadLocal برای محبوس‌سازی نخ
  • 24. انتشار و اشتراک‌گذاری ایمن آبجکت‌ها
  • 25. اشتراک‌گذاری آبجکت‌های تغییرپذیر: راهکارهای ایمن
  • 26. تفویض ایمنی نخ (Delegating Thread Safety)
  • 27. ترکیب آبجکت‌های ایمن از نظر نخ
  • 28. مستندسازی سیاست‌های همزمانی
  • 29. کالکشن‌های همزمان: Vector و Hashtable و مشکلات آن‌ها
  • 30. کالکشن‌های همزمان: استفاده از ‌های synchronized
  • 31. معرفی پکیج java.util.concurrent
  • 32. رابط ConcurrentMap و پیاده‌سازی ConcurrentHashMap
  • 33. عملکرد و ساختار داخلی ConcurrentHashMap
  • 34. کلاس CopyOnWriteArrayList و موارد استفاده آن
  • 35. کلاس CopyOnWriteArraySet
  • 36. صف‌های مسدودکننده (Blocking Queues) و الگوی تولیدکننده-مصرف‌کننده
  • 37. انواع BlockingQueue: ArrayBlockingQueue و LinkedBlockingQueue
  • 38. صف‌های اولویت‌دار و تاخیردار: PriorityBlockingQueue و DelayQueue
  • 39. استفاده از Deque و BlockingDeque
  • 40. چرا از نخ‌ها به صورت مستقیم استفاده نکنیم؟
  • 41. معرفی چارچوب Executor
  • 42. رابط Executor و ExecutorService
  • 43. کارخانه Executors: ساخت انواع استخر نخ (Thread Pool)
  • 44. چرخه حیات یک ExecutorService: Running, Shutting down, Terminated
  • 45. الگوهای خاموش کردن ایمن استخر نخ‌ها
  • 46. رابط‌های Callable و Future: دریافت نتایج از وظایف
  • 47. مدیریت استثناها در وظایف اجرا شده توسط Executor
  • 48. مفهوم و کاربرد Future.get() و مدیریت Timeout
  • 49. کلاس FutureTask
  • 50. مفهوم CompletionService: مدیریت نتایج وظایف نامتقارن
  • 51. پیکربندی ThreadPoolExecutor: corePoolSize, maximumPoolSize
  • 52. پیکربندی ThreadPoolExecutor: keepAliveTime, workQueue
  • 53. سیاست‌های اشباع (Saturation Policies) در ThreadPoolExecutor
  • 54. کلاس ScheduledExecutorService برای زمان‌بندی وظایف
  • 55. همزمانی در برنامه‌های گرافیکی (Swing و JavaFX)
  • 56. نخ توزیع رویداد (Event Dispatch Thread)
  • 57. مفهوم بن‌بست (Deadlock)
  • 58. شرایط لازم برای وقوع بن‌بست
  • 59. شناسایی و جلوگیری از بن‌بست
  • 60. بن‌بست قفل پویا (Dynamic lock order deadlock)
  • 61. راهکارهایی برای اجتناب از بن‌بست
  • 62. قفل گرسنه (Livelock) و گرسنگی (Starvation)
  • 63. هماهنگی بین نخ‌ها: wait, notify, و notifyAll
  • 64. مشکلات رایج در استفاده از wait/notify: Spurious Wakeups
  • 65. ابزارهای هماهنگ‌ساز (Synchronizers): Latches
  • 66. استفاده از CountDownLatch برای هماهنگی شروع و پایان
  • 67. ابزارهای هماهنگ‌ساز (Synchronizers): Barriers
  • 68. استفاده از CyclicBarrier برای همگام‌سازی گروهی از نخ‌ها
  • 69. ابزارهای هماهنگ‌ساز (Synchronizers): Semaphores
  • 70. کنترل دسترسی به منابع با Semaphore
  • 71. ابزارهای هماهنگ‌ساز (Synchronizers): Exchanger
  • 72. لغو و توقف وظایف
  • 73. مدیریت وقفه‌ها (Interruption) و InterruptedException
  • 74. پیاده‌سازی وظایف قابل لغو
  • 75. الگوهای خاموش کردن سرویس‌ها و وظایف
  • 76. مدل حافظه جاوا (Java Memory Model - JMM)
  • 77. رابطه "قبل-رخ‌دادن" (Happens-Before Relationship)
  • 78. انتشار ایمن (Safe Publication) و الگوهای آن
  • 79. الگوی Double-Checked Locking و مشکلات آن
  • 80. قفل‌های صریح: رابط Lock
  • 81. کلاس ReentrantLock و قابلیت‌های پیشرفته آن
  • 82. قفل‌های منصفانه و ناعادلانه (Fair vs. Unfair Locks)
  • 83. استفاده از Condition برای هماهنگی پیشرفته
  • 84. مقایسه Condition با wait/notify
  • 85. قفل‌های خواندن-نوشتن: ReadWriteLock و ReentrantReadWriteLock
  • 86. کلاس StampedLock و قفل‌گذاری خوشبینانه
  • 87. کلاس‌های اتمیک: پکیج java.util.concurrent.atomic
  • 88. عملیات مقایسه و تعویض (Compare-And-Swap - CAS)
  • 89. الگوریتم‌های غیرمسدودکننده (Non-blocking Algorithms)
  • 90. پیاده‌سازی یک شمارنده غیرمسدودکننده
  • 91. اندازه‌گیری و تنظیم عملکرد همزمانی
  • 92. قانون آمدال (Amdahl's Law) و تاثیر آن بر مقیاس‌پذیری
  • 93. کاهش رقابت بر سر قفل (Lock Contention)
  • 94. تکنیک‌های کاهش رقابت: Lock Splitting و Lock Striping
  • 95. تست واحدهای همزمان
  • 96. تست ایمنی (Safety) و زنده بودن (Liveness)
  • 97. ابزارهای تست: استرس تست و تحلیل پروفایل
  • 98. چارچوب Fork/Join
  • 99. کلاس‌های RecursiveTask و RecursiveAction
  • 100. استریم‌های موازی (Parallel Streams)
EXPRESS24 AUDIO EXPERIENCE
یادگیری را بشنوید؛ زندگی کنید
کتاب‌های صوتی و پادکست‌های آموزشی، راهی دلنشین برای کشف ایده‌های تازه، گسترش دانش و استفاده بهتر از لحظه‌های روزمره هستند.
دانش، الهام و تجربه؛ این بار با صدای زندگی
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفت‌وآمد هستید، قدم می‌زنید، استراحت می‌کنید یا کارهای روزمره‌تان را انجام می‌دهید. محتوای صوتی کمک می‌کند از این لحظه‌ها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفت‌وآمد، پیاده‌روی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربه‌ای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازه‌ای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایده‌های تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادت‌های شخصی‌تان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، می‌توانید داستان‌ها، آموزش‌ها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتاب‌ها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفت‌وگو، روایت، توضیح آموزشی یا مجموعه‌ای از قسمت‌های صوتی؛ مناسب برای کشف ایده‌ها و آشنایی با دیدگاه‌های گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاه‌های تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپ‌تاپ
با پخش‌کننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکته‌های مهم را یادداشت کنید یا پس از پایان شنیدن، آن‌ها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتاب‌های صوتی و پادکست‌های آموزشی، دنیای تازه‌ای از ایده‌ها، روایت‌ها و آموختنی‌ها را به لحظه‌های خود اضافه کنید.
کشف محصولات بیشتر در اکسپرس ۲۴
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرم‌افزار مورد استفاده بستگی دارد.
AUDIO PREVIEW
قبل از انتخاب، گوش کنید!
بخشی از سبک محتوای محصولات صوتی ما را بشنوید و با فضای آن آشنا شوید.
♫
نمونه صوتی از سبک محصولات صوتی ما
پیش‌نمایش کوتاهی از سبک پادکست های صوتی محصولات ما
پخش آنلاین
برای تجربه بهتر، می‌توانید از هدفون استفاده کنید.
تگ‌ها: Concurrency Java Java concurrency in Practice Multithreading Parallel Computing Programming آموزش جاوا اپلیکیشن اصول الگوها ایمنی برنامه نویسی همزمان برنامه‌نویسی موازی مقیاس‌پذیری

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.