Description

Book Synopsis
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.

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

Table of Contents
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.

Modern Multithreading Implementing Testing and

    Product form

    £89.06

    Includes FREE delivery

    RRP £98.95 – you save £9.89 (9%)

    Order before 4pm today for delivery by Fri 3 Jul 2026.

    A Paperback / softback by Richard H. Carver, Kuo-Chung Tai

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Modern Multithreading Implementing Testing and by Richard H. Carver

      Publisher: John Wiley & Sons Inc
      Publication Date: 11/11/2005
      ISBN13: 9780471725046, 978-0471725046
      ISBN10: 0471725048

      Description

      Book Synopsis
      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.

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

      Table of Contents
      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.

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account