ch29:Multithreading

29-1 Introduction

29-2 Thread Concepts

29-3 Creating Tasks and Threads

參考 p.998 程式 Listing 29.1 TaskThreadDemo.java

29-4 The Thread Class

29-5 Example: Flashing Text

參考 p.1002 程式 Listing 29.2 FlashingText.java

29-6 GUI Event Dispatch Thread

參考 p.1003 程式 Listing 29.3 EventDispatcherThreadDemo.java

29-7 Case Study: Clock with Audio

參考 p.1004 程式 Listing 29.4 ClockWithAudio.java

參考 p.1004 程式 Listing 29.5 ClockWithAudioOnSeparateThread.java

29-8 Thread Pools

參考 p.1008 程式 Listing 29.6 ExecutorDemo.java

29-9 Thread Synchronization

參考 p.1009 程式 Listing 29.7 AccountWithoutSync.java

參考 p.1009 程式 Listing 29.7A AccountWithSync.java

參考 p.1009 程式 Listing 29.7B AccountWithSyncStatements.java

29-10 Synchronization Using Locks

參考 p.1014 程式 Listing 29.8 AccountWithSyncUsingLock.java

29-11 Cooperation among Threads

參考 p.1016 程式 Listing 29.9 ThreadCooperation.java

29-12 Case Study: Producer/Consumer

參考 p.1020 程式 Listing 29.10 ConsumerProducer.java

29-13 Blocking Queues

參考 p.1023 程式 Listing 29.11 ConsumerProducerUsingBlockingQueue.java

29-14 Semaphores

29-15 Avoiding Deadlocks

29-16 Thread States

29-17 Synchronized Collections

29-18 SwingWorker

參考 p.1029 程式 Listing 29.13 SwingWorkerDemo.java

29-19 Displaying Progress Using JProgressBar

參考 p.1032 程式 Listing 29.14 ProgressBarDemo.java

參考 p.1 程式 Listing 29. Random.java

p.73 Figure 29. Black Box