首頁(yè) > 計(jì)算機(jī)網(wǎng)絡(luò) >
編程語(yǔ)言與程序設(shè)計(jì)
> Mastering C++ Multithreading最新章節(jié)目錄
目錄(235章)
倒序
- cover
- Title Page
- Copyright
- Mastering C++ Multithreading
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Downloading the example code
- Errata
- Piracy
- Questions
- Revisiting Multithreading
- Getting started
- The multithreaded application
- Makefile
- Other applications
- Summary
- Multithreading Implementation on the Processor and OS
- Defining processes and threads
- Tasks in x86 (32-bit and 64-bit)
- Process state in ARM
- The stack
- Defining multithreading
- Flynn's taxonomy
- Symmetric versus asymmetric multiprocessing
- Loosely and tightly coupled multiprocessing
- Combining multiprocessing with multithreading
- Multithreading types
- Temporal multithreading
- Simultaneous multithreading (SMT)
- Schedulers
- Tracing the demo application
- Mutual exclusion implementations
- Hardware
- Software
- Summary
- C++ Multithreading APIs
- API overview
- POSIX threads
- Windows support
- PThreads thread management
- Mutexes
- Condition variables
- Synchronization
- Semaphores
- Thread local storage (TLC)
- Windows threads
- Thread management
- Advanced management
- Synchronization
- Condition variables
- Thread local storage
- Boost
- Qt
- QThread
- Thread pools
- Synchronization
- QtConcurrent
- Thread local storage
- POCO
- Thread class
- Thread pool
- Thread local storage (TLS)
- Synchronization
- C++ threads
- Putting it together
- Summary
- Thread Synchronization and Communication
- Safety first
- The scheduler
- High-level view
- Implementation
- Request class
- Worker class
- Dispatcher
- Makefile
- Output
- Sharing data
- Using r/w-locks
- Using shared pointers
- Summary
- Native C++ Threads and Primitives
- The STL threading API
- Boost.Thread API
- The 2011 standard
- C++14
- C++17
- STL organization
- Thread class
- Basic use
- Passing parameters
- Return value
- Moving threads
- Thread ID
- Sleeping
- Yield
- Detach
- Swap
- Mutex
- Basic use
- Non-blocking locking
- Timed mutex
- Lock guard
- Unique lock
- Scoped lock
- Recursive mutex
- Recursive timed mutex
- Shared mutex
- Shared timed mutex
- Condition variable
- Condition_variable_any
- Notify all at thread exit
- Future
- Promise
- Shared future
- Packaged_task
- Async
- Launch policy
- Atomics
- Summary
- Debugging Multithreaded Code
- When to start debugging
- The humble debugger
- GDB
- Debugging multithreaded code
- Breakpoints
- Back traces
- Dynamic analysis tools
- Limitations
- Alternatives
- Memcheck
- Basic use
- Error types
- Illegal read / illegal write errors
- Use of uninitialized values
- Uninitialized or unaddressable system call values
- Illegal frees
- Mismatched deallocation
- Overlapping source and destination
- Fishy argument values
- Memory leak detection
- Helgrind
- Basic use
- Misuse of the pthreads API
- Lock order problems
- Data races
- DRD
- Basic use
- Features
- C++11 threads support
- Summary
- Best Practices
- Proper multithreading
- Wrongful expectations - deadlocks
- Being careless - data races
- Mutexes aren't magic
- Locks are fancy mutexes
- Threads versus the future
- Static order of initialization
- Summary
- Atomic Operations - Working with the Hardware
- Atomic operations
- Visual C++
- GCC
- Memory order
- Other compilers
- C++11 atomics
- Example
- Non-class functions
- Example
- Atomic flag
- Memory order
- Relaxed ordering
- Release-acquire ordering
- Release-consume ordering
- Sequentially-consistent ordering
- Volatile keyword
- Summary
- Multithreading with Distributed Computing
- Distributed computing in a nutshell
- MPI
- Implementations
- Using MPI
- Compiling MPI applications
- The cluster hardware
- Installing Open MPI
- Linux and BSDs
- Windows
- Distributing jobs across nodes
- Setting up an MPI node
- Creating the MPI host file
- Running the job
- Using a cluster scheduler
- MPI communication
- MPI data types
- Custom types
- Basic communication
- Advanced communication
- Broadcasting
- Scattering and gathering
- MPI versus threads
- Potential issues
- Summary
- Multithreading with GPGPU
- The GPGPU processing model
- Implementations
- OpenCL
- Common OpenCL applications
- OpenCL versions
- OpenCL 1.0
- OpenCL 1.1
- OpenCL 1.2
- OpenCL 2.0
- OpenCL 2.1
- OpenCL 2.2
- Setting up a development environment
- Linux
- Windows
- OS X/MacOS
- A basic OpenCL application
- GPU memory management
- GPGPU and multithreading
- Latency
- Potential issues
- Debugging GPGPU applications
- Summary 更新時(shí)間:2021-07-15 17:34:39
推薦閱讀
- Spring 5.0 By Example
- 自己動(dòng)手寫(xiě)搜索引擎
- Java面向?qū)ο筌浖_(kāi)發(fā)
- CKA/CKAD應(yīng)試教程:從Docker到Kubernetes完全攻略
- JS全書(shū):JavaScript Web前端開(kāi)發(fā)指南
- Spring Boot Cookbook
- Android開(kāi)發(fā)三劍客:UML、模式與測(cè)試
- Raspberry Pi Robotic Projects(Third Edition)
- Bootstrap for Rails
- Java程序設(shè)計(jì)與項(xiàng)目案例教程
- Photoshop CC移動(dòng)UI設(shè)計(jì)案例教程(全彩慕課版·第2版)
- Visual Basic程序設(shè)計(jì)基礎(chǔ)
- MATLAB 2020 GUI程序設(shè)計(jì)從入門(mén)到精通
- Microsoft XNA 4.0 Game Development Cookbook
- Implementing DevOps with Ansible 2
- Computer Vision with Python 3
- OpenCL異構(gòu)并行計(jì)算:原理、機(jī)制與優(yōu)化實(shí)踐
- VB語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教程
- R語(yǔ)言數(shù)據(jù)處理及可視化分析
- Visual C++2013從入門(mén)到精通(視頻教學(xué)版)
- HTML5+CSS3+JavaScript從入門(mén)到精通(微課精編版)
- 機(jī)器學(xué)習(xí)全解(R語(yǔ)言版)
- Java Web程序設(shè)計(jì)任務(wù)教程(第2版)
- C/C++程序設(shè)計(jì)(第3版)
- Penetration Testing Bootcamp
- VMware vRealize Operations Essentials
- Arduino Essentials
- 從零開(kāi)始學(xué)Python程序設(shè)計(jì)
- Swift 3 Functional Programming
- 健壯的Python