انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: علت نامگذاری asynchronous یا برنامه نویسی غیر همزمان  (دفعات بازدید: 1880 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین Mr.World.Wide

  • Newbie
  • *
  • ارسال: 19
  • جنسیت : پسر
دوستان یه سوالی تو ذهنم اومده
من برنامه نویسی همزمان و غیر همزمان رو میدونم چیه
فقط سوال درباره کلمه ها هستش

اونم اینه که چرا میگیم همزمان؟؟
در برخورد اول وقتی که من کلمه همزمان رو میشنوم  به ذهنم خطور میکنه که خب یعنی به صورت همزمان چند برنامه اجرا بشه
یا به صورت همزمان چند متد اجرا بشه
یا به صورت همزمان چند رشته اجرا بشه
ولی این ویژگی برنامه نویسی غیر همزمان هست

خب غیر همزمان با چی؟
یعنی دو تا متد در دو زمان متفاوت اجرا میشه؟؟؟
خب وقتی متد بلاک بشه تا رشته ما بره و متد دوم رو انجام بده و بعد برگرده متد اول رو ادامه بده ، در اینجا متد اول و دوم غیر همزمان هستند
یعنی در دو زمان متفاوت اجرا شدند
در حالیکه اگر هر دو متد با هم اجرا بشه در دو رشته مختلف خب یعنی همزمان هستند!!!


متوجه شدید منظورم چیه؟
یعنی من میگم باید به برنامه نویسی همزمان بگن غیر همزمان
و به غیر همزمان بگن همزمان
یعنی انگاری  کلمه ها جا به جا استفاده شده

یا اینکه به خاطر زبان فارسی اینجوری معنی میده؟؟
یا کلا علت نام گذاری چیز دیگه ایه؟؟

شما حتی در معنی کلمه asynchronous هم اگر دقت کنید این رو نوشتند:
not going at the same rate and exactly together with something else, in particular.
not existing or happening at the same time.

یعنی میگه دو چیزی که همزمان با هم نباشند
با همدیگه اجرا نشند
خب ولی برنامه نویسی  asynchronous یعنی متد های ما یا وظیفه های ما به صورت همزمان اجرا بشند
یعنی ما چندتا thread داشته باشیم که همزمان با هم یه بخشی از برنامه ما رو اجرا کنه

وقتی که همزمانی وجود داره چرا خب بهش میگن asynchronous؟؟؟

ممنون میشم دوستان راهنمایی کنن

آفلاین aet

  • Jr. Member
  • *
  • ارسال: 85
نقل‌قول
خب ولی برنامه نویسی  asynchronous یعنی متد های ما یا وظیفه های ما به صورت همزمان اجرا بشند

asynchronous بیشتر از این که معنای غیر هم زمانی رو داشته باشه مخالف معنای synchronous هستش.

synchronous یعنی ترتیب اجرای کارها معلومه و به محض تموم شدن اولی، دومی اجرا میشه.توی asynchronous ممکنه کار دومی از اولی تموم بشه.

درواقع تو کلمه synchronous بیشتر از این که مساله time یا زمان اتفاق افتادن مطرح باشه مساله timeline یا ترتیب اتفاق افتادن مطرحه.
توی asynchronous این مساله حذف میشه.

البته قبول دارم شاید کلمه بهتری رو میشد انتخاب کرد.
« آخرین ویرایش: 06 بهمن 1396، 12:37 ق‌ظ توسط aet »

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
البته ترجمهٔ درست، «ناهنگام» هستش، نه همزمان. همزمان معادل موازی یا Parallel هستش (که کاملا معنای دیگه‌ای داره)، در حالی که Synchronous در علوم کامپیوتر به معنای همگام هستش، نه همزمان. حتا Asynchronous هم حتما Parallel نیست و می‌تونه Concurrent باشه. دلیلش هم اینه که پروسه‌ها با هم هنگام نیستند و می‌تونن بدون همگامی با همدیگه پیش برن.

آفلاین Mr.World.Wide

  • Newbie
  • *
  • ارسال: 19
  • جنسیت : پسر
نقل‌قول
خب ولی برنامه نویسی  asynchronous یعنی متد های ما یا وظیفه های ما به صورت همزمان اجرا بشند

asynchronous بیشتر از این که معنای غیر هم زمانی رو داشته باشه مخالف معنای synchronous هستش.

synchronous یعنی ترتیب اجرای کارها معلومه و به محض تموم شدن اولی، دومی اجرا میشه.توی asynchronous ممکنه کار دومی از اولی تموم بشه.

درواقع تو کلمه synchronous بیشتر از این که مساله time یا زمان اتفاق افتادن مطرح باشه مساله timeline یا ترتیب اتفاق افتادن مطرحه.
توی asynchronous این مساله حذف میشه.

البته قبول دارم شاید کلمه بهتری رو میشد انتخاب کرد.

آره تایم لاین یا همون ترتیب زمانی شاید مد نظر باشه
دیشب در موردش بیشتر پرسیدم
به یه جوابی رسیدم
اینکه از زاویه درگیر شدن یا اجرا شدن متد ها به قضیه نگاه نکنیم
بلکه از زاویه جواب گرفتن به قضیه نگاه کنیم

در برنامه نویسی همزمان به محض اینکه متد اول میاد و متد دوم رو درگیر میکنه ، همون لحظه جواب رو میگیره
یا بلاک میشه تا متد دوم کارش رو انجام بده و باز برگرده و جوابش رو بده که چون هنوز متد اول بلاک شده و در حال اجرا هست ، وقتی جواب میگیره خب همزمان حساب میشه هنوز هم

ولی در متد غیر همزمان ، وقتی متد اول میاد و متد دوم رو درگیر میکنه همون لحظه جواب نمیگیره
متد دوم میره و کارش رو انجام میده
و متد اول هم میره و بقیه برنامه رو انجام میده
و جواب گرفتن موکول میشه به زمان دیگه ای

این جالب بود

آفلاین Mr.World.Wide

  • Newbie
  • *
  • ارسال: 19
  • جنسیت : پسر
البته ترجمهٔ درست، «ناهنگام» هستش، نه همزمان. همزمان معادل موازی یا Parallel هستش (که کاملا معنای دیگه‌ای داره)، در حالی که Synchronous در علوم کامپیوتر به معنای همگام هستش، نه همزمان. حتا Asynchronous هم حتما Parallel نیست و می‌تونه Concurrent باشه. دلیلش هم اینه که پروسه‌ها با هم هنگام نیستند و می‌تونن بدون همگامی با همدیگه پیش برن.

اخه توی ترجمه انگلیسی به انگلییسی هم باز مسئله زمان مطرح شده

not existing or happening at the same time

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
در برنامه نویسی همزمان به محض اینکه متد اول میاد و متد دوم رو درگیر میکنه ، همون لحظه جواب رو میگیره
همینطور که گفتم برنامه‌نویسی همزمان میشه Concurrent Programming (که حتا اینجا هم «همزمان» از لحاظ فنی اشتباهه) یا Parallel Programming که موضوع متفاوتی از Synchronous Programming هستش. برنامه‌نویسی هنگام یا برنامه‌نویسی ناهنگام درسته.