60th Session, Concurrency in Java
60th Session, Concurrency in Java
آموزش شصتم
اهداف آموزشی این قسمت عبارتند از:
.1معرفی Concurrencyدر زبان برنامه نویسی جاوا
.2آشنایی با Synchronization
یکی از تفاوت های عمده خانم ها و آقایان به میزان Concurrencyدر آنها مرتبط است .پیش
از توضیح پیرامون این مسئله دو تصویر زیر را با یکدیگر مقایسه می کنیم:
در تصویر فوق عکس آقایی را می بینیم که قصد دارد چند کار را به صورت هم زمان انجام دهد.
همانطور که چهره این آقا نشان می دهد ،کامالً مشخص است که او چقدر در این کار موفق است.
علت این مسئله هم آن است که اکثر آقایان دارای این ویژگی هستند که در لحظه فقط می توانند
روی یک کار و نهایتاً دو کار متفاوت تمرکز کنند و این در صورتی است که اگر بیش از یک کار
1
Page
می بنیم که این خانم با رضایت تمام از طریق تلفن به راهنمایی فرد پشت خط می پردازد ،کار ارباب
رجوع را انجام می دهد ،نوشیدنی میل می کند و مهم تر از همه آخرین لطیفه هایی که برایش از
طریق پیام کوتاه ارسال می شوند را نیز از دست نمی دهد .اگر به چهره این خانم توجه کنیم ،می
بینیم که او با رضایت کامل همه این کارها را به صورت هم زمان انجام می دهد و جالب اینجا است
که هر یک از کارها با نهایت دقت و کیفیت انجام می شوند و توجه به یک کار او را از کار دیگری
باز نمی دارد (قابل توجه آقایانی که خود را برتر از خانم ها می دانند).
به طور کلی APIهای موجود در ذهن خانم ها به صورت Concurrentبرنامه ریزی شده اند به
این صورت که چندین کار به صورت هم زمان در چارچوب ذهنی خانم ها می تواند صورت پذیرد
اما این در حالی است که ذهن آقایان Concurrentنیست.
در زبان برنامه نویسی جاوا هم قضیه به همین صورت است .در حقیقت زبان جاوا از همان ابتدای
شکل گیری دارای مفهومی تحت عنوان Concurrencyبود .به عبارت دیگر طراحان این زبان
برنامه نویسی قصد داشتند زبانی ایجاد کنند که در آن این امکان به برنامه نویسان و توسعه دهندگان
2
داده شود که بتوانند به صورت هم زمان چندین Threadیا کار را در برنامه خود عملی سازند
Page
دخالت در کار یکدیگر داده شود می توانیم انتظار مشکالتی در برنامه خود را داشته باشیم.
Page