Modern Multithreading (eBook)

Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs
eBook Download: PDF
2005 | 1. Auflage
480 Seiten
John Wiley & Sons (Verlag)
978-0-471-74416-0 (ISBN)

Lese- und Medienproben

Modern Multithreading - Richard H. Carver, Kuo-Chung Tai
Systemvoraussetzungen
99,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Master the essentials of concurrent programming,including testing
and debugging

This textbook examines languages and libraries for multithreaded
programming. Readers learn how to create threads in Java and C++,
and develop essential concurrent programming and problem-solving
skills. Moreover, the textbook sets itself apart from other
comparable works by helping readers to become proficient in key
testing and debugging techniques. Among the topics covered, readers
are introduced to the relevant aspects of Java, the POSIX Pthreads
library, and the Windows Win32 Applications Programming
Interface.

The authors have developed and fine-tuned this book through the
concurrent programming courses they have taught for the past twenty
years. The material, which emphasizes practical tools and
techniques to solve concurrent programming problems, includes
original results from the authors' research. Chapters
include:

* Introduction to concurrent programming

* The critical section problem

* Semaphores and locks

* Monitors

* Message-passing

* Message-passing in distributed programs

* Testing and debugging concurrent programs

As an aid to both students and instructors, class libraries have
been implemented to provide working examples of all the material
that is covered. These libraries and the testing techniques they
support can be used to assess student-written programs.

Each chapter includes exercises that build skills in program
writing and help ensure that readers have mastered the chapter's
key concepts. The source code for all the listings in the text and
for the synchronization libraries is also provided, as well as
startup files and test cases for the exercises.

This textbook is designed for upper-level undergraduates and
graduate students in computer science. With its abundance of
practical material and inclusion of working code, coupled with an
emphasis on testing and debugging, it is also a highly useful
reference for practicing programmers.

RICHARD H. CARVER, PhD, is an Associate Professor in the Department of Computer Science, George Mason University. KUO-CHUNG TAI, PhD, was a Professor in the Department of Computer Science, North Carolina State University as well as the Co-Director of the university's Software Engineering Laboratory.

Preface.

1 Introduction to Concurrent Programming.

1.1 Processes and Threads: An Operating System's View.

1.2 Advantages of Multithreading.

1.3 Threads in Java.

1.4 Threads in Win32.

1.5 Pthreads.

1.6 C++ Thread Class.

1.7 Thread Communication.

1.8 Testing and Debugging Multithreaded Programs.

1.9 Thread Synchronization.

Further Reading.

References.

Exercises.

2 The Critical Section Problem.

2.1 Software Solutions to the Two-Thread Critical Section
Problem.

2.2 Ticket-Based Solutions to the n-Thread Critical Section
Problem.

2.3 Hardware Solutions to the n-Thread Critical Section
Problem.

2.4 Deadlock, Livelock, and Starvation.

2.5 Tracing and Replay for Shared Variables.

2.5.6 Note on Shared Memory Consistency.

Further Reading.

References.

Exercises.

3 Semaphores and Locks.

3.1 Counting Semaphores.

3.2 Using Semaphores.

3.3 Binary Semaphores and Locks.

3.4 Implementing Semaphores.

3.5 Semaphore-Based Solutions to Concurrent Programming
Problems.

3.6 Semaphores and Locks in Java.

3.7 Semaphores and Locks in Win32.

3.7.6 Example: C++/Win32 Bounded Buffer.

3.8 Semaphores and Locks in Pthreads.

3.9 Another Note on Shared Memory Consistency.

3.10 Tracing, Testing, and Replay for Semaphores and Locks.

Further Reading.

References.

Exercises.

4 Monitors.

4.1 Definition of Monitors.

4.2 Monitor-Based Solutions to Concurrent Programming
Problems.

4.3 Monitors in Java.

4.4 Monitors in Pthreads.

4.5 Signaling Disciplines.

4.6 Using Semaphores to Implement Monitors.

4.7 Monitor Toolbox for Java.

4.8 Monitor Toolbox for Win32/C++/Pthreads.

4.9 Nested Monitor Calls.

4.10 Tracing and Replay for Monitors.

4.11 Testing Monitor-Based Programs.

Further Reading.

References.

Exercises.

5 Message Passing.

5.1 Channel Objects.

5.2 Rendezvous.

5.3 Selective Wait.

5.4 Message-Based Solutions to Concurrent Programming
Problems.

5.5 Tracing, Testing, and Replay for Message-Passing
Programs.

Further Reading.

References.

Exercises.

6 Message Passing in Distributed Programs.

6.1 TCP Sockets.

6.3 Timestamps and Event Ordering.

6.4 Message-Based Solutions to Distributed Programming
Problems.

6.5 Testing and Debugging Distributed Programs.

Programs.

Further Reading.

References.

Exercises.

7 Testing and Debugging Concurrent Programs.

7.1 Synchronization Sequences of Concurrent Programs.

7.2 Paths of Concurrent Programs.

7.3 Definitions of Correctness and Faults for Concurrent
Programs.

7.4 Approaches to Testing Concurrent Programs.

7.5 Reachability Testing.

Further Reading.

References.

Exercises.

Index.

"...an excellent work on concurrent programming, examining languages and libraries for developing multithreaded programs." (CHOICE, April 2006)

Erscheint lt. Verlag 28.11.2005
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte Computer Science • Informatik • Programmierung u. Software-Entwicklung • Programming & Software Development • Softwareentwicklung
ISBN-10 0-471-74416-6 / 0471744166
ISBN-13 978-0-471-74416-0 / 9780471744160
Haben Sie eine Frage zum Produkt?
PDFPDF (Adobe DRM)
Größe: 2,2 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
31,43
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
34,93
Deterministische und randomisierte Algorithmen

von Volker Turau; Christoph Weyer

eBook Download (2024)
De Gruyter (Verlag)
64,95