Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the evolution of asynchronous programming in C++ and its impact on I/O-centric software development in this comprehensive conference talk from ACCU 2017. Delve into the challenges of efficient and correct I/O operations, particularly in distributed computing environments. Examine various techniques employed over time to address these challenges, from blocking I/O to modern coroutines. Gain insights into the trade-offs between efficiency, correctness, and maintainability in asynchronous software. Learn about key concepts such as forking, threading, select and poll mechanisms, epoll, and callback-based libraries like ASIO. Understand why std::future may not be the ideal solution for I/O operations and explore the potential of coroutines in C++. Compare C++ approaches with techniques used in other languages, including communicating sequential processes and green threads. Develop a deeper understanding of the commonalities between different asynchronous programming techniques to better equip yourself for writing, testing, and debugging complex I/O-centric software.