User Tools

Site Tools


2014:creating_safe_multi-threaded_applications_in_c_11

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
2014:creating_safe_multi-threaded_applications_in_c_11 [2013/11/07 07:27] – created jonjagger2014:creating_safe_multi-threaded_applications_in_c_11 [2016/06/11 14:05] (current) – external edit 127.0.0.1
Line 6: Line 6:
 **Duration**: 45 mins\\ **Duration**: 45 mins\\
 **Description**: \\ **Description**: \\
-C++11 finally establishes the mechanisms and libraries to create portable multi-threaded applications. "Portablemeaning both to different OS environments as well as to different CPU platforms. +C++11 finally establishes the mechanisms and libraries to create portable multi-threaded applications. 'Portablemeaning both to different OS environments as well as to different CPU platforms. 
-Multi-threaded behavior got properly defined through a set of rules that constrain the freedom of the compiler and runtime to reorder memory operations. Deterministic application behavior is guaranteed when data races cannot occur. Avoiding data races in terms of C11 semantics is a complex topic that deserves explanation regarding atomics and acquire-release barriers. The complexity of creating correct multi-threaded programs necessitates verification through tools. Unfortunately, the toolbox of the C++11 programmer is still rather rudimentary in this respect. Among a few threading race detector tools, Google'"thread sanitizeris a highly promising public domain tool. It operates by building an order relationship among observed events, and can thereby report race conditions on program executions that otherwise would appear to behave fine. This model is a nice fit with the C++11 ordering semantics. A few interesting examples will be discussed.\\+Multi-threaded behavior got properly defined through a set of rules that constrain the freedom of the compiler and runtime to reorder memory operations. Deterministic application behavior is guaranteed when data races cannot occur. Avoiding data races in terms of C11 semantics is a complex topic that deserves explanation regarding atomics and acquire-release barriers. The complexity of creating correct multi-threaded programs necessitates verification through tools. Unfortunately, the toolbox of the C++11 programmer is still rather rudimentary in this respect. Among a few threading race detector tools, Google''thread sanitizeris a highly promising public domain tool. It operates by building an order relationship among observed events, and can thereby report race conditions on program executions that otherwise would appear to behave fine. This model is a nice fit with the C++11 ordering semantics. A few interesting examples will be discussed.\\
 \\ \\
 \\ \\
 \\ \\
  
2014/creating_safe_multi-threaded_applications_in_c_11.1383809253.txt.gz · Last modified: 2016/06/11 14:05 (external edit)