Home > Lectures > Lecture Details

Transitioning from Sequential Programming to Concurrent Programming in the Ticket Sale Example

By Jerry Cain - Stanford
get flash player

Lecture Description

Transitioning from Sequential Programming to Concurrent Programming in the Ticket Sale Example, Problems with the Sequential Model, Threading Interface, Rewriting the Ticket Example to Use It, Adding a Randomized Threadsleep Call to the Threads to Make the Time Slices Used by the Different Threads Less Uniform, Sample Output of Our Ticket Threads, How a Thread Can be Interrupted in the Middle of a Nonatomic Operation, How Multithreading Can Drastically Speed Up the RSS News Reader by Allowing Some Feeds to be Loaded While the Other Feeds Are Blocked, Allowing Each of the Ticket Threads to Access A Global Pool of Tickets, Rather than Allocating 15 Tickets to Each Agent, How This Can Lead to Problems When Threads Attempt to Access the Shared Data Simultaneously, How We Can Prevent This from Happening By Enclosing the Critical Region within A Semaphore, the Semaphorewait And Semaphoresignal Functions, Modifying the Selltickets Function to Use the Semaphore to Protect the Shared Data, How Changing the initial Value of the Semaphore Can Create Deadlock or Allow Too Many Threads to Access the Shared Data At Once

Course Description

Related Resources

Transcript   |  Thread Package Docs   |  Concurrency Examples

Course Index

  1. Introduction to Programming Paradigms Course
  2. Data Types - Interpretations
  3. Converting Between Types of Different Sizes and Bit Representations Using Pointers
  4. Creating a Generic Swap Function for Data Types of Arbitrary Size
  5. Generic Lsearch - Prototype
  6. Integer Stack Implementation - Constructor and Destructor
  7. Problems with Ownership of Memory
  8. Heap Management - How Information about Allocations are Stored in the Heap
  9. How a Code Snippet is Translated into Assembly Instructions
  10. More Detail about Activation Records - Layout of Memory During a Function Call
  11. Moving from C Code Generation to C++ Code Generation: Basic Swap Example
  12. Preprocessing Commands
  13. Review of Compilation Process of a Simple Program
  14. Sequential Programming vs. Concurrent Programming
  15. Transitioning from Sequential Programming to Concurrent Programming in the Ticket Sale Example
  16. Semaphores
  17. Review of the Dining Philosopher Problem
  18. Ice Cream Store Problem
  19. Introduction to the Functional Paradigm (Scheme)
  20. Car-Cdr Recursion Problem
  21. Introduction to the Kawa Development Environment: Evaluation of Expressions
  22. Writing a Recursive Power Set Function in Scheme
  23. Scheme Memory Model
  24. Overarching Features of Python
  25. Python Object Model
  26. XML Processing and Python
  27. Introduction to Haskell