Web Resources:
CppReference.com, CPlusPlus.com, C++ TechLinksGoing Native 2013 - many experts
Herb Sutter's Blog, Herb Sutter on C++11, Herb Sutter keynote - Going Native 2012
Scott Meyer's Blog, S.M. on thread suspension, S.M.: C++11 Sampler
Stroustrup's Home Page, Code Project, Boost Library
Content:
This lecture continues discussion of Threads focusing today on C++11 thread models.-
Readings:
The C++ Standard Library, Nicolai Jusuttis, Chap 18: Concurrency -
Syllabus
Describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects. -
Projects:
Project #2, Project2HelpS17
Finding File Dependencies from Abstract Syntax Tree Project #3 - Code Publisher
Project #4 - Remote Code Publisher
Using Regular Expressions with Modern C++ There will be a Project #1 Grievance Session in CST 4-201 this Friday, 3/3/2017, at 5:00pm.Threads and Synchronization
Threads Presentation, pptx
Process Diagram, Memory Mapped Files, Windows message processing, Windows GUI structure Win32 Thread Details, doc Simple callable objects demo, Simple C++ Concurrency Demo
Place to start learning about C++11 threading. Uses async abstraction. C++11 Concurrency
A series of basic demos that cover most of what you need to know for the midterm and projects. Blocking Queue
Thread safe queue that blocks on dequeuing an empty queue. Lambda Capture
Demos for various options when capturing data with lambdas. C++11 Thread Techniques
Illustrations of how to do interesting things that are often needed in project designs. Locking Performance - Win32 vs. C++11 Queued Messages
Passes messages between threads using Blocking Queue. Tasks and Threadpool
Provides a ThreadPool class. Task is a wrapper around a static ThreadPool. Custom Threads and Locks Classes
C++ class encapsulating Win32 threads. This was written before C++11 and is included only to show how creating a thread class can be accomplished.Standard Smart Pointers
std::unique_ptr<T> and std::shared_ptr<T> XmlDocument Example - uses std::shared_ptr<AbstractXmlElement>Thinking about Software Design:
Software Design
Broad survey of ideas with examples
Design Presentation
Summarizes design issues for modules and classes.
Design Guidelines
Design rules and idioms that transcend Object Oriented Design. Design SummaryThese are the most important items from today's lecture:
C++11 Concurrency
A series of basic demos that cover most of what you need to know for the midterm and projects. Blocking Queue
Thread safe queue that blocks on dequeuing an empty queue. Lambda Capture
Demos for various options when capturing data with lambdas. C++11 Thread Techniques
Illustrations of how to do interesting things that are often needed in project designs.