برنامهنویسی Multithreading و همزمان در جاوا از مبانی تا پیشرفته
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- تفاوتهای بین threads و فرآیندها
- ایجاد Thread با استفاده از کلاس Thread و رابط Runnable
- مدیریت چرخه عمر و استیت های Thread
- نظارت و کنترل اجرای Thread
- درک شرایط رقابتی و ایمنی Thread
- استفاده از کلیدواژه synchronized و متغیرهای volatile
- پیادهسازی تکنیکهای همگامسازی thread-safe
- کار با ExecutorService برای مدیریت کارآمد threads
- استفاده از ScheduledExecutorService برای زمانبندی تسک ها
- پیادهسازی Future و Callable برای محاسبات ناهمگام
- مدیریت عملیات اتمی با متغیرهای اتمی
- درک ()wait() ،notify و ()notifyAll برای ارتباط بین threads
- پیادهسازی قفلها و متغیرهای شرطی برای هماهنگی بهتر threads
- استفاده از ReentrantLock و ReentrantReadWriteLock برای قفلگذاری دقیق
- کار با متغیرهای شرطی برای مدیریت بهتر threads
- بررسی در کالکشن های thread-safe مانند ConcurrentHashMap
- استفاده از صفهای مسدودکننده برای سناریوهای producer-consumer
- درک رقابت بر سر Thread و بنبستها
- پیادهسازی طراحیهای thread-safe و تغییرناپذیر
- بهینهسازی استخرهای Thread برای کارایی بهتر
- استفاده از جریانهای موازی برای بهبود عملکرد
- درک چگونگی مدیریت threads توسط ماشین مجازی جاوا (JVM)
- کار با اولویتهای Thread و daemon threads
- یادگیری الگوهای طراحی همزمانی برای اپلیکیشن های مقیاسپذیر
- مدیریت استثناها در اپلیکیشن های multithreaded
- پیادهسازی مکانیزمهای قفلگذاری پیشرفته
- ساخت یک وب سرور multithreaded
- پیادهسازی یک سیستم producer-consumer
- توسعه یک سیستم چت بلادرنگ
- استفاده از ابزارهای اشکالزدایی برای تحلیل Thread
- نوشتن تستهای واحد برای کد همزمان
- تحلیل عملکرد اپلیکیشن های multithreaded برای بهینهسازی
پیش نیازهای دوره
- دانش قبلی درباره multithreaded جاوا لازم نیست.
- مهارتهای اولیه جاوا مورد نیاز است.
- یک کامپیوتر با سیستمعامل 64 بیتی
- ما MacOS (64 بیتی) را ترجیح میدهیم اما این اجباری نیست. شما میتوانید از سیستمعاملهای دیگر استفاده کنید.
- ما IntelliJ را ترجیح میدهیم که یک ویرایشگر متن قدرتمند و پیشرفته با افزونهها و ابزارهای فراوان است
- هیچ چیز دیگری! فقط شما، کامپیوترتان و اشتیاقتان برای شروع از امروز
توضیحات دوره
به دوره "برنامهنویسی Multithreading و همزمانی در جاوا از مقدماتی تا پیشرفته" خوش آمدید.
Multithreading در جاوا، همزمانی و موازیسازی با پروژههای واقعی، بهترین شیوه ها و بهینهسازی عملکرد
Multithreading یک مفهوم اساسی در برنامهنویسی مدرن است که به اپلیکیشن ها امکان میدهد چندین تسک را به طور همزمان اجرا کنند. جاوا قابلیتهای Multithreading قدرتمندی را فراهم میکند و به توسعهدهندگان اجازه میدهد نرمافزارهایی کارآمد، واکنش گرا و مقیاسپذیر بنویسند. چه در حال توسعه سیستمهای پشتیبان باشید، چه اپلیکیشن های بلادرنگ یا راهحلهای محاسباتی با کارایی بالا، تسلط به Multithreading مهارتهای برنامهنویسی جاوا شما را به سطح بالاتری میبرد. بنابراین با این دوره، بیاموزید که چگونه از ویژگیهای قدرتمند Multithreading و همزمانی جاوا برای ساخت اپلیکیشن های مقیاسپذیر و با کارایی بالا استفاده کنید.
در این دوره، هدف ما این است که به شما در درک مدل Multithreading جاوا و ابزارهای همزمانی کمک کنیم تا بتوانید اپلیکیشن های thread-safe و کارآمد بنویسید.
اپلیکیشن های امروزی به کارایی و واکنش گرایی بالا نیاز دارند. چه با اپلیکیشن های بزرگ سازمانی کار کنید، چه سیستمهای مالی یا اپلیکیشن های پیامرسان بلادرنگ، درک threads، همگامسازی و برنامهنویسی همزمان حیاتی است.
همچنین، این دوره مبتنی بر پروژه است و ما بیش از 20 تمرین کدنویسی انجام خواهیم داد.
در این دوره یاد خواهید گرفت؛
- مقدمهای بر threads و multithreading
- ایجاد Thread با استفاده از Thread و Runnable
- مدیریت Thread و چرخه عمر
- تکنیکهای همگامسازی (synchronized ،volatile ،Lock API)
- مکانیزمهای قفلگذاری پیشرفته (ReentrantLock، ReadWriteLock)
- APIهای همزمانی سطح بالای جاوا (ExecutorService ،Future ،Callable)
- هماهنگی Thread (()wait() ،notify، متغیرهای شرطی)
- کار با کالکشن های thread-safe و صفهای مسدودکننده
- بهینهسازی عملکرد، جلوگیری از بنبستها و مقیاسپذیر کردن اپلیکیشن ها
- مطالعات موردی multithreading در دنیای واقعی (وب سرور، Producer-Consumer، سیستم چت)
با multithreading، شما میتوانید:
- عملکرد اپلیکیشن را با استفاده از چندین هسته CPU بهبود بخشید.
- اپلیکیشن های واکنش گرایی بسازید که در طول تسک های طولانی قفل نمیکنند.
- ایمنی Thread را تضمین کرده و از مسائلی مانند شرایط رقابتی و بنبستها جلوگیری کنید.
- به APIهای همزمانی سطح بالای جاوا و تکنیکهای محاسبات موازی مسلط شوید.
multithreading در جاوا چیست؟
multithreading در جاوا به معنای اجرای یک فرآیند پیچیده با استفاده از موجودیتهای پردازشی مجازی مستقل از یکدیگر است. این موجودیتها Thread نامیده میشوند. threads در جاوا مجازی هستند و مکان حافظه یکسانی از فرآیند را به اشتراک میگذارند. از آنجایی که threads مجازی هستند، روش ایمنتری برای اجرای یک فرآیند ارائه میدهند.
Thread در جاوا چیست؟
Thread کوچکترین بخش از یک فرآیند کامل است. Thread یک جریان کنترلی مستقل، مجازی و ترتیبی درون یک فرآیند است. در اجرای فرآیند، کالکشنی از threads دخیل هستند و هر Thread حافظه یکسانی را به اشتراک میگذارد. هر Thread تسک خود را مستقل از Thread دیگر انجام میدهد.
multithreading در مقابل چندوظیفگی در مقابل چندپردازشی
multithreading با چندوظیفگی و چندپردازشی تفاوت دارد. با این حال، چندوظیفگی و چندپردازشی به روشهای زیر با multithreading مرتبط هستند:
- چندوظیفگی توانایی یک کامپیوتر برای اجرای دو یا چند برنامه همزمان است. multithreading چندوظیفگی را ممکن میسازد، بدین صورت که برنامهها را به threads کوچکتر و قابل اجرا تقسیم میکند. هر Thread دارای عناصر برنامهنویسی لازم برای اجرای برنامه اصلی است و کامپیوتر هر Thread را یکی یکی اجرا میکند.
- چندپردازشی از بیش از یک CPU برای افزایش سرعت پردازش کلی استفاده میکند و از چندوظیفگی پشتیبانی میکند.
در این دوره، شما به دانش اولیه جاوا نیاز دارید.
این دوره شما را از سطح مبتدی به سطحی باتجربهتر میرساند.
ما شما را از سطح مبتدی به پیشرفته خواهیم برد. شما گامبهگام یاد خواهید گرفت.
محتوای بهروز
multithreading در جاوا امکان اجرای همزمان چندین Thread را فراهم میکند و عملکرد و واکنش گرایی اپلیکیشن ها را بهبود میبخشد. این دوره مفاهیم ضروری مانند ایجاد Thread، همگامسازی و کنترل همزمانی را پوشش میدهد. شما یاد خواهید گرفت که چگونه threads را به طور کارآمد مدیریت کنید، از شرایط رقابتی اجتناب کنید و عملکرد را بهینه سازید، تا بتوانید اپلیکیشن های جاوا قدرتمند و با کارایی بالا بسازید.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان جاوا که میخواهند به multithreading و همزمانی مسلط شوند.
- مهندسان نرمافزار که به دنبال بهینهسازی عملکرد اپلیکیشن هستند.
- هرکسی که برای مصاحبههای شغلی جاوا یا آزمونهای گواهینامه آماده میشود.
- توسعهدهندگان پشتیبان، توسعهدهندگان بازی و معماران سیستم
- کسانی که میخواهند در درخواستهای شغلی مرتبط با جاوا یک قدم جلوتر باشند.
- توسعهدهندگان جاوا که میخواهند دانش خود را در زمینه multithreading و همزمانی افزایش دهند.
برنامهنویسی Multithreading و همزمان در جاوا از مبانی تا پیشرفته
-
مقدمه 01:45
-
Thread چیست؟ 02:57
-
ایجاد کلاس Thread 02:41
-
ایجاد کلاس Runnable 02:41
-
آزمون None
-
Thread و فرآیندها 06:25
-
مدیریت Thread 03:55
-
استیت ها و نظارت Thread 02:31
-
آزمون None
-
مقدمهای بر همگامسازی 02:35
-
کلیدواژه synchronized 09:26
-
کلیدواژه volatile 05:11
-
آزمون None
-
مقدمهای بر APIهای همزمان 07:06
-
سرویس Executor 10:45
-
سرویس Executor زمانبندیشده 10:58
-
کالکشن همزمان 07:59
-
Future و Callable 06:28
-
متغیرهای اتمی 06:07
-
آزمون None
-
مقدمهای بر هماهنگی Thread 03:37
-
ارتباط Inter-thread 10:17
-
قفلها و شرایط 10:34
-
آزمون None
-
ReentrantLock و ReentrantReadWriteLock 18:58
-
متغیرهای شرطی 16:57
-
آزمون None
-
کالکشن های Thread-safe 06:56
-
صفهای مسدودکننده 07:14
-
آزمون None
-
رقابت بر سر thread و بنبستها 15:13
-
ایمنی thread و تغییرناپذیری 14:24
-
بهینهسازی استخرهای thread 16:39
-
جریان موازی 06:39
-
آزمون None
-
نقش JVM در مدیریت thread 11:16
-
اولویتهای thread 06:50
-
daemon threads 06:18
-
آزمون None
-
الگوهای طراحی همزمانی 31:05
-
مدیریت استثناها در threads 18:23
-
مکانیزمهای قفلگذاری پیشرفته 25:57
-
آزمون None
-
ساخت یک وب سرور multithreaded 18:15
-
پیادهسازی یک سیستم producer-consumer 20:31
-
توسعه یک سیستم چت بلادرنگ 30:47
-
آزمون None
-
ابزارهای اشکالزدایی Thread 13:49
-
تست واحد کد multithreaded 12:33
-
تحلیل عملکرد اپلیکیشن های multithreaded 13:31
-
آزمون None
مشخصات آموزش
برنامهنویسی Multithreading و همزمان در جاوا از مبانی تا پیشرفته
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:همه سطوح
- تعداد درس:51
- مدت زمان :07:06:30
- حجم :1.41GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy