اين كتاب بهطور كلي به بحث برنامهنويسي چندنخي و برنامه نویسی موازي در چهارچوب كاري NET. ميپردازد. اجراي موازي، بهويژه در رابطه با عمليات I/O كه گلوگاه كُندي برنامهها است، بسيار مهم است و از يخزدن پنجرههاي برنامه جلوگيري كرده و پاسخپذيري برنامه را افزايش ميدهد. در نتيجه كاربر، تجربهي بسيار بهتري در كار با برنامه پيدا ميكند. پس از خواندن اين كتاب علاوه بر اينكه دانش خود را با جديدترين دستاورد NET 4.0. و NET 4.5. به روز ميكنيد، ديدگاه جديدي در برنامهنويسي پيدا خواهيد كرد. مهمترين ويژگي كتاب اين است كه مباحث آن نظري نيست، بلكه كاربردهايي ارائه ميدهد كه ميتوانيد آنها را بهطور عملي در برنامههاي خود به كار بريد و برنامههايي بسيار سريعتر و كاربرپسندتر بنويسيد. از همه مهمتر برنامههايي بنويسيد كه به طور خودكار مقياسپذير باشند و در هر سيستمي از بيشرين توان پردازش سختافزار آن بهره ببرند.
شابک: ٧-١٢-٦٥٢٩-٦٠٠-٩٧٨
تعداد صفحه: ٦٩٦
نوبت چاپ: اول
سال چاپ: بهار ١٣٩١
قيمت پشت جلد:١٧٥،٠٠٠ تومان با تخفیف خرید اینترنتی: ١٥٥،٠٠٠ تومان
نمونه pdf:
نيازمندي ها
مخاطبین
تصحيحات
سورس کُد و ضمائم
فهرست
توضيح
نظرات کاربران
محمدرضا کرمی
١٣٩٣/٠٨/١٥ ???? ١٩:٣٢
کتابي عالي و کاملي هست ولي در بعضي قست هاي کتاب (يک يا دو بخش )شاهد اشتباهاتي بود که يکي از اين مشکلات را با ايميل به مولف اطلاع دادم و اميدوارم که در نسخه هاي ديگر کتاب اين مشکلات رفع شده باشن
سيد منصور عمراني
١٣٩٣/٠٨/١٥ ???? ٢٠:٢٩
با سلام. ضمن تشکر، خوشحال ميشوم اگر اشتباهاتي در کتاب پيدا کردهايد به من اطلاع بدهيد. ايميل را چک کردم. ولي پيامي از سوي شما دريافت نکردهام.
محمدرضا کرمی
١٣٩٣/٠٨/١٦ ???? ٠٠:٣٥
ايميل خود را بررسي کردم و لي متاستفانه موفق به پيدا کردن ايميل ارسالي نشدم ولي ادرس ايميل شما در مخاطبان من بود يکي از اين ايراد ها را علامت گذاري کرده ام که با مراجعه دوباره به کتاب شما را از آن مطلع مي کنم
مهدی کریمی مقام
١٣٩٤/٠٤/١٤ ???? ١٥:٠٩
با سلام
اين کتاب خيلي خوبه، متني روان دراه و کاملاً با دقت پيشنيازها رو رعايت کرده.
من هنوز کتاب رو کامل تمام نکردم و خيلي مشتاقم تا زودتر مطالعش رو تمام کنم.
همانطور که آقاي محمدرضا کرمي ذکر کردن در برخي از جاهاي کتاب اشتباهات کوچکي هست، که اميدوارم در چاپ هاي بعدي اصلاح شوند.
کتاب عالييه ممنون از شما
سیاوش ابراهیمی
١٣٩٤/٠٤/٢٩ ???? ١٣:٣٥
اين کتاب يک شاهکاره .
مرسي آقاي عمراني .
آرمان اسپیار
١٣٩٤/١٠/٢٦ ???? ١٩:٤٧
کاربرد این کتاب در mvc 5.2 هم میشه استفاده کرد ؟
سيد منصور عمراني
١٣٩٤/١٠/٢٧ ???? ٠٩:٢٨
بله. اگر فصل مربوط به الگوی TAP (فصل 34 و 35) و کلمات کلیدی async/await رو مطالعه کنید به راحتی و با اشراف کامل میتونید در ASP.NET MVC 5 از اکشنهای async استفاده کنید.
پژمان نازراز
١٣٩٥/٠٣/٢٧ ???? ١٤:٤٧
با سلام
میخواستم بدونم برای استفاده از این کتاب در mvc چه فصل هایی از این کتاب کاربرد داره که مطالعه کنم؟
سيد منصور عمراني
١٣٩٥/٠٣/٢٨ ???? ١٩:٤٩
سلام.
فصل 22 تا 25 و فصل 34 و 35.
مرتضي نجفيان
١٣٩٦/٠٢/١٢ ???? ٠٩:٤٢
سلام تشکر ویژه میکنم از مولف و ناشر این کتاب واقعا بی نظیره خیلی چیزا یاد گرفتم عالی عالی
آرمان اسپیار
١٣٩٦/٠٦/١٠ ???? ١٥:٣٠
سلام خسته نباشید من سال 94 خریدم و الان خواندمش واقعا کتاب خیلی خوبیست دست شما درد نکنه
فقط برای چاپ مجدد باید غلط املایی ها را درست کنید نمونش ص 433 خط اول حیف این کتاب
واقعا من تازه الان فهمیدم async/awaite یعنی چی ایول
سيد منصور عمراني
١٣٩٦/٠٦/٢٦ ???? ٢٢:٤٦
سلام.
بابت تاخیر تایید نظر ببخشید.
نظر لطف شما است. بلی. کتاب به ویرایش نیاز داره.
اتفاقا خودم هم مایلم دو سه فصل دیگه بهش اضافه کنم. ولی گویا هنوز فروش کتابهای فعلی به اتمام نرسیده. لذا ناشر الان مایل به تجدید چاپ نیستن.
مصطفی احمدی ابدال آبادی
١٣٩٦/٠٩/٢٧ ???? ١٧:٥٣
سلام بر شما ، همین کتاب رو بخریم یا منتظر نگارش جدید باشیم؟ زمان چاپ ویرایش دوم چه موقع هست؟ با تشکر
سيد منصور عمراني
١٣٩٦/١٢/٠٢ ???? ١٥:٥٤
ضمن پوزش بابت تاخیر
همین رو بخرید. من شخصا مایل هستم ویرایش جدید بدم. ولی ناشر خیلی تمایلی نداره!
میلاد حسینی
١٣٩٧/٠٩/١٦ ???? ١٢:١١
جناب آقای عمرانی عزیز،سپاس بی پایان به خاطر کتابی که نوشتی،بسیار عالی و شیوا بود،من تازه تمومش کردم، دستت درد نکنه،ممنون از زحماتت.خیلی خیلی عالی بود،امیدوارم که ویراست دومی هم داشته باشه و مبحثای دات نت ۴.۶ و دات نت ۴.۷ هم بهش پرداخته بشه.بازم از زحمات شما و مدیریت انتشارات پندار پارس سپاسگزارم،خسته نباشین.
میلاد حسینی
١٣٩٧/٠٩/١٦ ???? ١٢:٣٤
جناب آقای مهندس عمرانی بازم ممنون ازتون
سيد منصور عمراني
١٣٩٧/١١/٠٣ ???? ٢٢:١٦
سلام. از لطف شما سپاسگزارم. بابت تاخیر در تایید نظر شما پوزش مرا بپذیرید.
مهدی جعفری
١٤٠١/١٢/١٨ ???? ١٧:٣٣
درود
لطفا این کتاب 10 سال پیش رو با .net 8 بروز کنید ممکن برخی متدها منسوخ شده باشد.
ثبت نظر تنها براي اعضا میسر است. در صورتی که مایل به ثبت نظر هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.
فصل 1: تاريخچهي پردازندهها و برنامهنويسي همروند
فصل 2: مفاهيم اوليه
فصل 3: پردازهها و دامنهي برنامهها
فصل 4: برنامهنويسي چندنخي سنتي: قسمت اول
فصل 5: برنامهنويسي چندنخي سنتي: قسمت دوم
فصل 6: حوضچهي نخ
فصل 7: مباني هماهنگسازي
فصل 8: دستور lock
فصل 9: هماهنگسازي با استفاده از Monitor
فصل 10: سيگنالدهي با Monitor
فصل 11: دستگيرهي انتظار
فصل 12: دستگيرهي انتظار رويداد
فصل 13: موانع حافظه و فرّاري
فصل 14: عمليات اتمي پايه
فصل 15: ساختارهاي دو رگه
فصل 16: قفلهاي خواندن و نوشتن
فصل 17: راهاندازي کُند به شکل ايمن
فصل 18: انبار محلي نخ يا TLS
فصل 19: تايمرها
فصل 20: فراخواني غير همزمان نمايندهها يا ADI
فصل 21: لغو کردن عمليات هرموند و الگوي لغو مشارکتي
فصل 22: توسعههاي موازي يا PFX
فصل 23: توازي وظيفهاي
فصل 24: وظايف تو در تو و متوالي
فصل 25: ساير مباحث مرتبط با برنامهنويسي وظيفهاي
فصل 26: کلاس Parallel
فصل 27: Parallel LINQ
فصل 28: قسمتبندي
فصل 29: کلکسيونهاي همروند
فصل 30: الگوي برنامهنويسي غير همزمان APM: قسمت اول
فصل 31: الگوي برنامهنويسي غير همزمان APM: قسمت دوم
فصل 32: الگوي غير همزمان مبتني بر رويداد يا EAP: قسمت اول
فصل 33: الگوي غير همزمان مبتني بر رويداد يا EAP: قسمت دوم
فصل 34: الگوي غير همزمان وظيفهاي يا TAP: قسمت اول
فصل 35: الگوي غير همزمان وظيفهاي يا TAP: قسمت دوم
فصل 36: نخهاي .NET و فناوري COM
فصل 37: برنامهنويسي موازي و واسط کاربر
فصل 38: آزمايش
بررسي کارايي و اشکالزدايي برنامههاي همروند
فصل 39: دستورات SIMD و ساير کتابخانههاي برنامهنويسي موازي
مجموعهي مثالهاي کتاب شامل بيش از 170 مثال و تعدادي برنامهي آموزشي نمونه در زمينه برنامهنويسي چندنخي و موازي
١٤٦٨
تصحیحات
سیاوش ابراهیمی
١٣٩٤/١٠/٠٢ ???? ١٠:٠٦
سلام ، در مثال صفحه 206 کتاب قسمت " بهبود دادن تکنیک قفل گذاری با دوبار بررسی " در پایین صفحه ، بعد از قسمت Monitor.enter نیازی به چک کردن متغیر s_value با null نیست
این تصحيح توسط omrani مورد پذيرش قرار نگرفته است.
علت: ایراد وارد نیست
تاريخ رسيدگي: ١٣٩٤/١٠/٠٤ ???? ١٠:١٣
سيد منصور عمراني
١٣٩٤/١٠/٠٤ ???? ١٠:١٩
ضمن تشکر از توجه شما، ایراد ذکر شده صحیح نیست. علت مساله این است که بین خط قبل از Monitor.Enter() (جایی که s_value برای نخستین بار با null چک میشود) و Monitor.Enter() میتواند تعویض متن پیش بیاید و درست در همین میان یک نخ دیگر متغیر s_value را پر کند و خارج شود. در این حالت نخ بعدی زمانی Monitor.Enter() را فراخوانی کرده و s_lock را قفل میکند که s_value قبلا توسط نخ دیگری پر شده است. لذا نخ فعلی باید پس از Monitor.Enter() نیز چک کند آیا s_value تهی است یا خیر.
سیاوش ابراهیمی
١٣٩٥/٠٢/٢٣ ???? ٠٠:٥٩
سلام آقای عمرانی . در صفحه 66 کتاب و در مثال 12-4 شما اومدین یک برنامه به شکل کاملا ترتیبی نوشتید و از نخ و فراخوانی به صورت پارامتری خبری نیست .
سیاوش ابراهیمی
١٣٩٥/٠٢/٢٣ ???? ٠١:٠٧
البته درسته چون نخ اصلی هست و به هرحال اجرا میشه .
ولی خوب در اینجا بیشتر انتظار میرفت یک نخ جدید درست بشه و مقادیر به اون ارسال بشه .
سيد منصور عمراني
١٣٩٥/٠٢/٢٣ ???? ١٦:١٣
بله. اشتباه را درست اعلام کردهاید. کُد صحیح بدنهی متد Main بدین صورت است:
Thread t = new Thread(new ParameterizedThreadStart(Print));
t.Start("Hello World!");
Console.ReadKey();
سیاوش ابراهیمی
١٣٩٥/٠٣/٣١ ???? ١٥:٥٩
سلام آقای عمرانی . در صفحه 109 کتاب و در توضیح ساختار پیشفرض Signal شما گفتین که ترتیب اجرای نخ ها تاثیری نداره در حالی که کاملا تاثیر داره . اگر نخ t1 زودتر اجرا بشه Signal میده و به کارش خاتمه میده و با اجرای نخ t2 ، وقتی که به دستور Wait میرسه نخ بلاک میشه و هیچگاه از خواب بیدار نمیشه .
سيد منصور عمراني
١٣٩٥/٠٤/٠٢ ???? ٢٠:٠١
چنین نیست. دقت کنید ساختار SignalConstruct یک ساختار هماهنگ سازی فرضی است و در .NET چنین کلاسی وجود ندارد. اگر نخ t1 زودتر اجرا شود و Signal() را صدا بزند لزوما سیگنال او هدر نمی رود.
هدر رفتن سیگنال به نوع ساختار هماهنگ سازی بستگی دارد. نمونه خوبی از این مساله دستگیره های انتظار (مانند ساختار AutoResetEvent) هستند که در فصل 12 توضیح داده شده است.
اگر SignalConstruct را یک AutoResetEvent فرض کنید و نخ t1 متد Set() را برای این ساختار صدا بزند و زودتر از نخ t2 کارش را تمام کند، وقتی اجرای t2 به Wait() می رسد بلاک نمی شود و به کارش ادامه می دهد. اگر نخ t1 نیز دیرتر از t2 کارش را شروع کرده باشد t2 در نقطه Wait() بلاک می شود تا t1 کارش را انجام داده و سیگنال بدهد.
سيد منصور عمراني
١٣٩٥/٠٤/٠٢ ???? ٢٠:٠٣
نمونه ای از این وضعیت را در مثال 12-1 صفحه 156 می توانید مشاهده کنید.
توجه کنید مقصود از هماهنگ شدن t1 و t2 در مثال صفحه 109 این است که t1 و بخش اولیه نخ t2 یعنی متد Task2_1() بتوانند به طور موازی اجرا شوند، اما Task2_2() لزوما باید پس از اجرای t1 اجرا شود.
سیاوش ابراهیمی
١٣٩٥/٠٤/١٥ ???? ١٩:٤٦
سلام آقای عمرانی ، در صفحه 177 کتابتون و در مثال 2-14 به گمانم باید مثدار متغیر value رو برگشت بدین و نه calc . چون که در داخل دستور lock اومدین مقدار جدید رو در Value قرار دادین و همچنین دستور CompareExchange هم مقدار رو در همین متغیر قرار میده
سيد منصور عمراني
١٣٩٥/٠٤/١٦ ???? ٢٢:٢٥
حق با شما است. اما واقعیت این است که متد MultiplyBy() نیز اصلا نیازی به مقدار برگشتی ندارد. زیرا حاصلضرب در نهایت داخل خود Value قرار خواهد گرفت و Value نیز یک متغیر public است.
سيد منصور عمراني
١٣٩٥/٠٤/١٦ ???? ٢٢:٤٠
توجه کنید مثال 2-14 نسخه تکمیل شده مثال 1-14 است که از فصل 22 کتاب C# 4.0 in a Nutshell صفحه 924 اخذ شده است.
در کتاب مزبور پیش از انجام محاسبه از Thread.MemoryBarrier() و پس از مقایسه از spinwait.SpinOnce() استفاده شده تا در سناریوهای همروندی بسیار بالا از به دام افتادن پردازنده در اختیار نخی که عمل حاصلضرب را انجام میدهد جلوگیری شود.
توصیه میکنم ساختار SpinWait را در کتاب مزبور (صفحه 922 تا 925) نیز حتما مطالعه نمایید.
امیر س
١٣٩٥/٠٧/٢٤ ???? ٢٢:٠٤
سلام
وقت بخیر... اگه این نمونه پی دی افی که گذاشتید چندصفحه محتویات کتاب هم میبود بهتر میشد! این که همش فهرسته!! اگه چندصفحه از محتوای آنرا هم بذارید بد نیست باور کنید با چندصفحه محتوا از یک کتابی به این مفیدی چیزی از زحمات نویسنده کاسته نمیشه!
ثبت تصحيح تنها براي اعضا میسر است. در صورتی که مایل به ثبت تصحيح هستید ابتدا برای خود حساب کاربری ایجاد کنید و اگر قبلاً حساب کاربری دارید لطفاً ابتدا وارد سیستم شوید.
مخاطبین
نیازمندی ها
کتاب های مرتبط
خریدار گرامی. این سایت قدیمی انتشارات پندارپارس است. جهت سفارش لطفا به سایت اصلی انتشارات به آدرس https://www.pendarepars.com مراجعه کنید.
این کتاب ٠ روز دیگر به چاپ رسیده و برایتان ارسال می شود. آیا مایل به پیش خرید هستید؟
سبد خرید شما حاوی کتابی است که به صورت پیش خرید تعریف شده است.
با توجه به این که آن کتاب هنوز به چاپ نرسیده، در صورت افزودن کتاب فعلی به سبد خرید، امکان ارسال آن تا زمان موجود شدن کتاب پیش خرید شده میسر نیست.
اگر می خواهید کتاب فعلی را زودتر دریافت کنید ابتدا سفارش قبلی را نهایی کنید، سپس کتاب فعلی را در قالب یک سفارش دیگر ثبت کنید.
کتاب فعلی را الان نیاز دارم. اول سفارش پیش خرید را نهایی می کنم. مشکلی با ارسال با تاخیر کتاب فعلی همراه با کتاب پیش خرید ندارم. کتابها همراه هم ارسال شود
اگر کتاب فعلی را پیش خرید کنید کتاب های قبلی سبد خرید ٠ روز دیگر همراه با این کتاب (پس از چاپ آن) برایتان ارسال خواهد شد.
اگر کتاب های سبد خرید را هم اکنون نیاز دارید ابتدا آنها را نهایی کنید، سپس کتاب فعلی را در قالب یک سفارش دیگر به صورت جدا پیش خرید کنید.
کتاب های موجود در سبد خرید را الان نیاز دارم. اول آنها را نهایی می کنم. مشکلی با ارسال با تاخیر کتاب های موجود در سبد خرید همراه با کتاب پیش خرید فعلی ندارم. کتابها همراه هم ارسال شود