Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
CS *254: Concurrent Object-Oriented Programming in Java and Android CS *254: Concurrent Object-Oriented Programming in Java and Android Douglas C. Schmidt d.schmidt@vanderbilt.edu Department of Electrical Engineering and Computer Science School of Engineering Vanderbilt University Times and Location Classroom -- Monday and Wednesday from 8:45-10am in the Engineering Science Building (ESB) Room 48. Final exam time is Monday, May 2nd at noon in ESB Room 48. Philosophy Developing high quality concurrent object-oriented software in Java for Android mobile devices is hard; developing high quality reusable concurrent object-orietned software is even harder. The principles, methods, and skills required to develop reusable software cannot be learned by generalities. Instead, developers must learn through experience how reusable concurrent components and frameworks can be designed, implemented, optimized, validated, maintained, and enhanced by applying good object-oriented development practices and patterns. Prerequisites Proficiency in Java, i.e., as covered in CS 101 Proficiency in software patterns, i.e., as covered in CS 251 Knowledge of email, the Web, and online discussion forums Awareness of--and adherence to--the Vanderbilt University Honor Code that governs all work in this course (e.g. tests, quizzes, homework assignments, etc.), which must be done individually and in a "closed-book" manner (i.e., no outside help, no Internet, etc.) Course Logistics Office Hours and Locations Assignment Deadlines Course FAQ Programming Assignment Process and Submission Guidelines Course Overview Patterns of Learning Synopsis of Course Contents Summary of Course Work Textbook and Recommended Reading Course Videos and Slides By Week All the lecture videos for this course will be available on my YouTube playlist as they are created. I will also post links to the individual videos and PDF versions of the slides below. Week 1 Walkthrough of Assignment 1a (MP4) Course Overview and Logistics (MP4|PDF) Overview of Sequential Programming Concepts (MP4|PDF) Overview of Concurrent Programming Concepts (MP4|PDF) Overview of How Concurrent Programs are Developed in Java (MP4|PDF) Week 2 The History of Concurrency Support in Java (MP4|PDF) Introduction to Java Threads (MP4|PDF) Overview of the Java Thread Case Study App (MP4|PDF) Ways of Giving Code to a Java Thread (MP4|PDF) Passing Parameters to a Java Thread (MP4|PDF) Java Platform Threads vs. Virtual Threads (MP4|PDF) How Java Threads Start and Run (MP4|PDF) Key Methods in a Java Thread (MP4|PDF) Types of Java Threads (Part 1) (MP4|PDF) Types of Java Threads (Part 2) (MP4|PDF) Evaluating Java Thread Programming Models (MP4|PDF) Overview of the Java Memory Model (MP4|PDF) Overview of Java Synchronizers (MP4|PDF) The Pervasiveness & Complexity of Java Synchronizers (MP4|PDF) Types of Java Synchronizer Capabilities (Part 1) (MP4|PDF) Types of Java Synchronizer Capabilities (Part 2) (MP4|PDF) Walkthrough of Assignment 1b (MP4) Walkthrough of Assignment 1a Frequently Made Mistakes (MP4) Week 3 Synopsis of Java Synchronizer Classes (MP4|PDF) Usage Considerations of Java Synchronizer Classes (MP4|PDF) Overview of Atomic Operations (MP4|PDF) Overview of Java Atomic Operations & Variables (MP4|PDF) Introduction to Java Volatile Variables (MP4|PDF) Example Application of Java Volatile Variables (MP4|PDF) Usage Considerations of Java Volatile Variables (MP4|PDF) Introduction to Java Atomic Classes & Operations (MP4|PDF) Implementing & Applying Java Atomic Operations (MP4|PDF) Implementing Java AtomicLong (MP4|PDF) Implementing Java AtomicBoolean (MP4|PDF) Applying Java AtomicLong (MP4|PDF) Introduction to Java Semaphore (MP4|PDF) Structure & Functionality of Java Semaphore (MP4|PDF) Week 4 Preliminary Walkthrough of Assignment 1b Frequently Made Mistakes (MP4) Key Methods in Java Semaphore (MP4|PDF) Mediating Access to Shared Resources via Java Semaphore (MP4|PDF) Coordinating Threads via Java Semaphore (MP4|PDF) Java Semaphore Usage Considerations (MP4|PDF) Introduction to the Java Executor Framework (MP4|PDF) Overview of Thread Pools (MP4|PDF) Overview of Java Thread Pools (MP4|PDF) Key Interfaces in the Java Executor Framework (MP4|PDF) The Java Executor Framework: The Java Executors Class (MP4|PDF) Introduction to the Java Executor Interface (MP4|PDF) Java Executor Implementation Choices (MP4|PDF) Applying Java Executor to the PrimeChecker App (MP4|PDF) Evaluating the Pros & Cons of the Java Executor Interface (MP4|PDF) Introduction to the Java ExecutorService (MP4|PDF) Interfaces Related to the Java ExecutorService (MP4|PDF) Key Methods in the Java ExecutorService (Part 1) (MP4|PDF) Week 5 Key Methods in the Java ExecutorService (Part 2) (MP4|PDF) Overview of the Java ThreadPoolExecutor (MP4|PDF) Applying the Java ExecutorService to the PrimeChecker App (MP4|PDF) Evaluating Pros & Cons of the Java ExecutorService (MP4|PDF) Walkthrough of Assignment 1b Frequently Made Mistakes (MP4) Introduction to Java ReentrantLock (MP4|PDF) Structure & Functionality of Java ReentrantLock (MP4|PDF) Java ReentrantLock Reentrant Mutex Semantics (MP4|PDF) Comparing a Java ReentrantLock and Non-reentrant Lock in Practice (MP4) Key Methods in Java ReentrantLock (MP4|PDF) Example Application ofJava ReentrantLock (MP4|PDF) Java ReentrantLock Usage Considerations (MP4|PDF) Week 6 Introduction to Java ConditionObject (MP4|PDF) The Guarded Suspension Pattern (MP4|PDF) Common Use Cases for Condition Variables (MP4|PDF) Structure & Functionality of Java ConditionObject (MP4|PDF) Key Methods in Java ConditionObject (MP4|PDF) Example Application of Java ConditionObject (MP4|PDF) Java ConditionObject Usage Considerations (MP4|PDF) Overview of Java Synchronizers: Built-in Monitor Objects (MP4|PDF) Introduction to Java Monitor Objects (MP4|PDF) Java Monitor Object Motivating Example (MP4|PDF) Evaluating the Java Monitor Object Motivating Example (MP4|PDF) Java Monitor Object Synchronized Methods (MP4|PDF) Java Monitor Object Synchronized Statements (MP4|PDF) Java Monitor Object Synchronized Method Example (MP4|PDF) Evaluating Java Monitor Object Synchronized Methods (MP4|PDF) Walkthrough of Assignment 2B (MP4) Week 7 Coordination Methods for Java Monitor Objects (MP4|PDF) Visualizing the Java Monitor Object Coordination Example (MP4|PDF) Implementing the Java Monitor Object Coordination Example (MP4|PDF) Java Monitor Object Usage Considerations (MP4|PDF) Introduction to Java "Happens-Before" Relationships (MP4|PDF) Examples of Java "Happens-Before" Relationships (MP4|PDF) Introduction to Safe Publication in Java (MP4|PDF) Safe Publication Techniques in Java (MP4|PDF) Introduction to the Java ExecutorCompletionService (MP4|PDF) Key Methods in the Java ExecutorCompletionService (MP4|PDF) Implementation Internals in the Java ExecutiveCompletionService (MP4|PDF) Designing a Memoizer for Use With the Java ExecutorCompletionService (MP4|PDF) Implementing a Memoizer for Use With the Java ExecutorCompletionService (MP4|PDF) Applying the Java ExecutorCompletionService to the PrimeChecker App (MP4|PDF) Evaluating the Pros and Cons of the Java ExecutorCompletionService (MP4|PDF) Week 8 Walkthrough of Assignment 3A (MP4) Walkthrough of Assignment 2B Frequently Made Mistakes (MP4) Managing the Java Thread Lifecycle: Introduction (MP4|PDF) Managing the Java Thread Lifecycle: State Machine for Java Threads (MP4|PDF) Managing the Java Thread Lifecycle: Layers Involved in Starting a Thread (MP4|PDF) Managing the Java Thread Lifecycle: Steps Involved in Starting a Thread (MP4|PDF) Managing the Java Thread Lifecycle: Overview of Stopping a Java Thread (MP4|PDF) Managing the Java Thread Lifecycle: Stopping a Thread via a Volatile Flag (MP4|PDF) Managing the Java Thread Lifecycle: Stopping a Thread via an Interrupt (MP4|PDF) Managing the Java Thread Lifecycle: Patterns of Handling Thread Interrupts (MP4|PDF) Managing the Java Thread Lifecycle: Java Thread Interrupts vs. Hardware/OS Interrupts (MP4|PDF) Managing the Java Thread Lifecycle: Example Application (MP4|PDF) Week 9 Walkthrough of Assignment 3B (MP4) Introduction to the Specific Notification Pattern (MP4|PDF) Implementing a "Fair" Semaphore Via the Specific Notification Pattern (MP4|PDF) Visualizing a "Fair" Semaphore Via the Specific Notification Pattern (MP4|PDF) Introduction to Synchronized Collections (MP4|PDF) Example Application of Java Synchronized Collections (MP4|PDF) Introduction to Concurrent Collections (MP4|PDF) Example Application of Java Concurrent Collections (MP4|PDF) Week 10 Overview of Barrier Synchronizers (MP4|PDF) Overview of Java Barrier Synchronizers (MP4|PDF) Structure and Functionality of Java CountdownLatch (MP4|PDF) Key Methods of Java CountDownLatch (MP4|PDF) Example Application of Java CountDownLatch (MP4|PDF) Walkthrough of Frequently Made Mistakes for Assignment 3A (MP4) Preliminary Walkthrough of Frequently Made Mistakes for Assignment 3B (MP4) Structure and Functionality of Java CyclicBarrier (MP4|PDF) Key Methods of Java CyclicBarrier (MP4|PDF) Example Application of Java CyclicBarrier (MP4|PDF) Structure and Functionality of Java Phaser (MP4|PDF) Key Methods of Java Phaser (MP4|PDF) Example Application of Java Phaser (MP4|PDF) Week 11 Walkthrough of Frequently Made Mistakes for Assignment 3B (MP4) Overview of the Java Fork-Join Framework (MP4|PDF) The Java ForkJoinPool Class (MP4|PDF) The Java ForkJoinTask Class (MP4|PDF) Subclasses of the Java ForkJoinTask Superclass (MP4|PDF) Key Methods in the Java ForkJoinPool Class (MP4|PDF) Key Methods in the Java ForkJoinTask Superclass (MP4|PDF) Key Methods in the Java RecursiveAction and RecursiveTask Subclasses (MP4|PDF) Java Fork-Join Framework Internals: Worker Threads (MP4|PDF) Java Fork-Join Framework Internals: Work Stealing (MP4|PDF) Week 12 Maximizing Processor Core Utilization with the Java Common Fork-Join Pool (MP4|PDF) Overview of the Java Fork-Join Framework ManagedBlocker Interface (MP4|PDF) Applying the Java Fork-Join Framework's ManagedBlocker Interface (MP4|PDF) Encapsulating the Java Fork-Join Framework's ManagedBlocker Interface (MP4|PDF) Summary of (Common) Fork-Join Pool Benefits (MP4|PDF) Evaluating Different Java Fork-Join Framework Programming Models (MP4|PDF) Evaluating the applyAllIter() Java Fork-Join Framework Programming Model (MP4|PDF) Evaluating the applyAllSplit() Java Fork-Join Framework Programming Model (MP4|PDF) Evaluating the applyAllSplitIndex() Java Fork-Join Framework Programming Model (MP4|PDF) Comparing and Contrasting All the Java Fork-Join Framework Programming Model (MP4|PDF) Week 13 Introduction to Java FutureTask (MP4|PDF) Key Methods in Java FutureTask (MP4|PDF) Applying Java FutureTask to Design a Memoizer Cache (MP4|PDF) Applying Java FutureTask to Implement a Memoizer Cache (MP4|PDF) Applying the Java FutureTask-based Memoizer to the PrimeChecker App (MP4|PDF) Evaluating the Pros & Cons of Java FutureTask (MP4|PDF) Introduction to Java Readers-Writer Locks (MP4|PDF) Evaluating the Pros and Cons of Java Readers-Writer Locks (MP4|PDF) Structure and Functionality of Java StampedLock (MP4|PDF) Key Methods in Java StampedLock (MP4|PDF) Example Application of Java StampedLock (MP4|PDF) Usage Considerations for Java StampedLock (MP4|PDF) Walkthrough of Frequently Made Mistakes for Assignment 4A (MP4) Walkthrough of Assignment 4B (MP4) Week 14 Introduction to the Java ScheduledExecutorService (MP4|PDF) Overview of Java ScheduledExecutorService Policies (MP4|PDF) Applying the Java ScheduledExecutorService to TimedMemoizer (MP4|PDF) Implementing TimedMemoizer with the Java ScheduledExecutorService (MP4|PDF) Evaluating the Pros and Cons of TimedMemoizer (MP4|PDF) Applying the Java ScheduledExecutorService to TimedMemoizerEx (MP4|PDF) Implementing TimedMemoizerEx with the Java Scheduled ExecutorService (MP4|PDF) Evaluating the Pros and Cons of TimedMemoizerEx (MP4|PDF) Applying TimedMemoizerEx to the PrimeChecker App (MP4|PDF) Evaluating the Java ScheduledExecutorService Implementation of PrimeChecker (MP4|PDF) The Java Executors Utility Class (MP4|PDF) Wrapping Up the Java Executor Framework (MP4|PDF) Walkthrough of Assignment 4B Frequently Made Mistakes (MP4) Programming Assignments All the assignments for this course will be available here as they are created. Back to my CS Courses home page.