خب ولی برنامه نویسی asynchronous یعنی متد های ما یا وظیفه های ما به صورت همزمان اجرا بشند
asynchronous بیشتر از این که معنای غیر هم زمانی رو داشته باشه مخالف معنای synchronous هستش.
synchronous یعنی ترتیب اجرای کارها معلومه و به محض تموم شدن اولی، دومی اجرا میشه.توی asynchronous ممکنه کار دومی از اولی تموم بشه.
درواقع تو کلمه synchronous بیشتر از این که مساله time یا زمان اتفاق افتادن مطرح باشه مساله timeline یا ترتیب اتفاق افتادن مطرحه.
توی asynchronous این مساله حذف میشه.
البته قبول دارم شاید کلمه بهتری رو میشد انتخاب کرد.
آره تایم لاین یا همون ترتیب زمانی شاید مد نظر باشه
دیشب در موردش بیشتر پرسیدم
به یه جوابی رسیدم
اینکه از زاویه درگیر شدن یا اجرا شدن متد ها به قضیه نگاه نکنیم
بلکه از زاویه جواب گرفتن به قضیه نگاه کنیم
در برنامه نویسی همزمان به محض اینکه متد اول میاد و متد دوم رو درگیر میکنه ، همون لحظه جواب رو میگیره
یا بلاک میشه تا متد دوم کارش رو انجام بده و باز برگرده و جوابش رو بده که چون هنوز متد اول بلاک شده و در حال اجرا هست ، وقتی جواب میگیره خب همزمان حساب میشه هنوز هم
ولی در متد غیر همزمان ، وقتی متد اول میاد و متد دوم رو درگیر میکنه همون لحظه جواب نمیگیره
متد دوم میره و کارش رو انجام میده
و متد اول هم میره و بقیه برنامه رو انجام میده
و جواب گرفتن موکول میشه به زمان دیگه ای
این جالب بود