دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: 1 نویسندگان: Brian Goetz. Tim Peierls سری: ISBN (شابک) : 0321349601, 9780321349606 ناشر: Addison-Wesley سال نشر: 2006 تعداد صفحات: 0 زبان: English فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 7 مگابایت
در صورت تبدیل فایل کتاب Java concurrency in practice به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب همزمانی جاوا در عمل نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
من واقعاً خوش شانس بودم که با یک تیم فوق العاده روی طراحی و اجرای ویژگی های همزمانی اضافه شده به پلتفرم جاوا در جاوا 5.0 و جاوا 6 کار کردم. اکنون همین تیم بهترین توضیح را در مورد این ویژگی های جدید و همزمانی در عمومی. همزمانی دیگر فقط برای کاربران پیشرفته موضوعی نیست. هر توسعهدهنده جاوا باید این کتاب را بخواند.--Martin BuchholzJDK Concurrency Czar, Sun Microsystems\"در 30 سال گذشته، عملکرد رایانه توسط قانون مور هدایت میشود؛ از این به بعد، توسط قانون آمدال هدایت میشود. نوشتن کد به طور مؤثر بهره برداری از چندین پردازنده می تواند بسیار چالش برانگیز باشد. Java Concurrency in Practice مفاهیم و تکنیک های مورد نیاز برای نوشتن برنامه های جاوا ایمن و مقیاس پذیر برای سیستم های امروز و فردا را در اختیار شما قرار می دهد.\"--Doron RajwanResearch Scientist, Intel Corp\"This کتابی است که اگر در حال نوشتن یا طراحی، یا اشکال زدایی، یا نگهداری، یا فکر کردن به برنامه های جاوا چند رشته ای هستید، به آن نیاز دارید. به خودتان و کاربرانتان برای خواندن این کتاب، جلد تا جلد.\"--تد نیوارد نویسنده اثربخش سازمانی جاوا\"برایان به مسائل اساسی و پیچیدگی های همزمانی با وضوح غیرمعمول می پردازد. این کتاب برای هرکسی که از آن استفاده می کند باید مطالعه شود. موضوعات و اهمیت به عملکرد.\"--Kirk PepperdineCTO, JavaPerformanceTuning.com\"این کتاب یک موضوع بسیار عمیق و ظریف را به شیوه ای بسیار واضح و مختصر پوشش می دهد و آن را به راهنمای مرجع همگام جاوا کامل تبدیل می کند. هر صفحه پر از مشکلات (و راه حل ها!) است که برنامه نویسان هر روز با آنها دست و پنجه نرم می کنند. اکنون که قانون مور هستههای بیشتری را ارائه میکند، اما هستههای سریعتری ارائه میکند، استفاده مؤثر از همزمانی اهمیت بیشتری پیدا میکند و این کتاب به شما نشان میدهد که چگونه این کار را انجام دهید.\"--Dr. علاقه شدیدی به همزمانی دارند و احتمالاً نسبت به بسیاری از برنامه نویسان، بن بست های رشته ای بیشتری نوشته اند و اشتباهات همگام سازی بیشتری انجام داده اند. کتاب برایان خواندنی ترین کتاب در مورد موضوع رشته و همزمانی در جاوا است و با رویکرد عملی فوق العاده به این موضوع دشوار می پردازد. این کتابی است که من به همه خوانندگان خود در خبرنامه متخصصان جاوا توصیه می کنم، زیرا جالب، مفید و مرتبط با مشکلاتی است که امروزه توسعه دهندگان جاوا با آن مواجه هستند.\"--Dr. Heinz Kabutzخبرنامه متخصصان جاوا من یک حرفه را روی ساده کردن مسائل ساده متمرکز کرده ام، اما این کتاب به طور جاه طلبانه و مؤثری برای ساده کردن یک موضوع پیچیده اما حیاتی کار می کند: همزمانی. Java Concurrency in Practice در رویکرد خود انقلابی است، سبک روان و آسان، و در تحویل به موقع است - این کتاب قرار است کتاب بسیار مهمی باشد. تلفیقی از دانش Threading برای توسعه دهندگان جاوا. من خواندن این کتاب را از نظر فکری هیجانانگیز دیدم، تا حدی به این دلیل که مقدمهای عالی برای API همزمان جاوا است، اما بیشتر به این دلیل که به روشی کامل و در دسترس از دانش تخصصی در مورد رشتهبندی که به راحتی در جاهای دیگر یافت نمیشود، جمعآوری میکند.\"--Bill Venners نویسنده Inside the Java Virtual Machine Threads بخش اساسی پلتفرم جاوا است. با تبدیل شدن پردازنده های چند هسته ای به هنجار، استفاده از همزمانی به طور موثر برای ساخت برنامه های کاربردی با کارایی بالا ضروری می شود. Java SE 5 و 6 گام بزرگی به جلو برای توسعه برنامه های کاربردی همزمان با بهبود است. به ماشین مجازی جاوا برای پشتیبانی از کلاسهای همزمان با کارایی بالا و بسیار مقیاسپذیر و مجموعهای غنی از بلوکهای ساخت همزمان جدید. در Java Concurrency in Practice، سازندگان این امکانات جدید نه تنها نحوه کار و نحوه استفاده از آنها را توضیح میدهند، بلکه همچنین انگیزه و الگوهای طراحی پشت آنها. با این حال، توسعه، آزمایش، و اشکال زدایی برنامه های چند رشته ای هنوز می تواند بسیار دشوار باشد. ایجاد برنامههای همزمان که به نظر کار میکنند، اما زمانی که مهمتر است شکست میخورند، بسیار آسان است: در تولید، تحت بار سنگین. جاوا Concurrency in Practice خوانندگان را هم با زیربنای نظری و هم با تکنیک های عینی برای ساخت برنامه های همزمان قابل اعتماد، مقیاس پذیر و قابل نگهداری تسلط می دهد. این کتاب بهجای ارائه فهرستی از APIها و مکانیسمهای همزمان، قوانین طراحی، الگوها و مدلهای ذهنی را ارائه میکند که ساختن برنامههای همزمان را که هم صحیح و هم کارآمد هستند آسانتر میکند. ساختن و ایجاد کلاس های thread-safe استفاده از بلوک های ساختمان همزمان در java.util.concurrent بهینه سازی عملکرد بایدها و نبایدها آزمایش برنامه های همزمان موضوعات پیشرفته مانند متغیرهای اتمی، الگوریتم های غیر مسدود کننده و مدل حافظه جاوا
I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book.--Martin BuchholzJDK Concurrency Czar, Sun Microsystems"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."--Doron RajwanResearch Scientist, Intel Corp"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."--Ted NewardAuthor of Effective Enterprise Java"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."--Kirk PepperdineCTO, JavaPerformanceTuning.com"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."--Dr. Cliff ClickSenior Software Engineer, Azul Systems"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."--Dr. Heinz KabutzThe Java Specialists' Newsletter"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."--Bruce TateAuthor of Beyond Java"Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."--Bill VennersAuthor of Inside the Java Virtual MachineThreads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice, the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.This book covers: Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
Contents......Page 10
Listings......Page 13
Preface......Page 18
1.1 A (very) brief history of concurrency......Page 22
1.2 Benefits of threads......Page 24
1.3 Risks of threads......Page 26
1.4 Threads are everywhere......Page 30
I: Fundamentals......Page 34
2 Thread Safety......Page 36
2.1 What is thread safety?......Page 38
2.2 Atomicity......Page 40
2.3 Locking......Page 44
2.4 Guarding statewith locks......Page 48
2.5 Liveness and performance......Page 50
3.1 Visibility......Page 54
3.2 Publication and escape......Page 60
3.3 Thread confinement......Page 63
3.4 Immutability......Page 67
3.5 Safe publication......Page 70
4.1 Designing a thread-safe class......Page 76
4.2 Instance confinement......Page 79
4.3 Delegating thread safety......Page 83
4.4 Adding functionality to existing thread-safe classes......Page 92
4.5 Documenting synchronization policies......Page 95
5.1 Synchronized collections......Page 100
5.2 Concurrent collections......Page 105
5.3 Blocking queues and the producer-consumer pattern......Page 108
5.4 Blocking and interruptible methods......Page 113
5.5 Synchronizers......Page 115
5.6 Building an efficient, scalable result cache......Page 122
II: Structuring Concurrent Applications......Page 132
6.1 Executing tasks in threads......Page 134
6.2 The Executor framework......Page 138
6.3 Finding exploitable parallelism......Page 144
7.1 Task cancellation......Page 156
7.2 Stopping a thread-based service......Page 171
7.3 Handling abnormal thread termination......Page 182
7.4 JVM shutdown......Page 185
8.1 Implicit couplings between tasks and execution policies......Page 188
8.2 Sizing thread pools......Page 191
8.3 Configuring ThreadPoolExecutor......Page 192
8.4 Extending ThreadPoolExecutor......Page 200
8.5 Parallelizing recursive algorithms......Page 202
9.1 Why are GUIs single-threaded?......Page 210
9.2 Short-running GUI tasks......Page 213
9.3 Long-running GUI tasks......Page 216
9.4 Shared data models......Page 219
9.5 Other forms of single-threaded subsystems......Page 223
III: Liveness, Performance, and Testing......Page 224
10.1 Deadlock......Page 226
10.2 Avoiding and diagnosing deadlocks......Page 236
10.3 Other liveness hazards......Page 239
11.1 Thinking about performance......Page 242
11.2 Amdahl’s law......Page 246
11.3 Costs introduced by threads......Page 250
11.4 Reducing lock contention......Page 253
11.5 Example: Comparing Map performance......Page 263
11.6 Reducing context switch overhead......Page 264
12 Testing Concurrent Programs......Page 268
12.1 Testing for correctness......Page 269
12.2 Testing for performance......Page 281
12.3 Avoiding performance testing pitfalls......Page 287
12.4 Complementary testing approaches......Page 291
IV: Advanced Topics......Page 296
13.1 Lock and ReentrantLock......Page 298
13.2 Performance considerations......Page 303
13.3 Fairness......Page 304
13.4 Choosing between synchronized and ReentrantLock......Page 306
13.5 Read-write locks......Page 307
14.1 Managing state dependence......Page 312
14.2 Using condition queues......Page 319
14.3 Explicit condition objects......Page 327
14.4 Anatomy of a synchronizer......Page 329
14.5 AbstractQueuedSynchronizer......Page 332
14.6 AQS in java.util.concurrent synchronizer classes......Page 335
15.1 Disadvantages of locking......Page 340
15.2 Hardware support for concurrency......Page 342
15.3 Atomic variable classes......Page 345
15.4 Nonblocking algorithms......Page 350
16.1 What is a memory model, and why would I want one?......Page 358
16.2 Publication......Page 365
16.3 Initialization safety......Page 370
A.2 Field and method annotations......Page 374
Bibliography......Page 376
A......Page 380
B......Page 382
C......Page 383
D......Page 388
E......Page 390
F......Page 393
G......Page 395
H......Page 396
I......Page 397
J......Page 399
L......Page 400
M......Page 402
O......Page 404
P......Page 405
R......Page 409
S......Page 412
T......Page 418
U......Page 422
V......Page 423
W......Page 424