An independent stream of instructions that can be scheduled to run A path of execution int a, b; int c; a = 1; b = a + 2; c = 3; Sequentially execute int a, b; a = 1; b = a + 2; int c; c = 5; CPU Multi-Thread Single-Thread CPU
Program An execution file stored in the harddrive Process An execution file stored in the Memory Thread An execution path of part of the process HDD Memory ProgramProcessThread
Parallel execution Shared resources Easier to create and destroy than processes (100X) Easy porting to multiple CPUs
Standardized C language threads programming interface for UNIX systems Four major groups Thread management: Routines that work directly on threads - creating, detaching, joining, etc. Mutex: Routines that deal with synchronization. Mutex functions provide for creating, destroying, locking and unlocking mutexes. Condition variable: Routines that address communications between threads that share a mutex. Synchronization: Routines that manage read/write locks and barriers.
pthread_create() Return 0 if OK, nonzero on error Four Arguments ▪ Thread : A thread identifier ▪ Attr : A pointer to a thread attribute object ▪ Start_routine : A pointer to the function the thread executes ▪ Arg : The argument to the function
pthread_exit() Return 0 if OK, nonzero on error Four ways of terminating a thread The thread returns from its starting routine The thread makes a call to the pthread_exit subroutine The thread is canceled by another thread The entire process is terminated If main() finishes first, without calling pthread_exit
Mutexes are used to prevent data inconsistencies due to operations by multiple threads upon the same memory area performed at the same time to prevent race conditions where an order of operation upon the memory is expected
Condition variables are used to allow threads to synchronize based upon the actual value of data without continually polling to check whether the condition if met in conjunction with a mutex lock
Tutorial - Wiki http://en.wikibooks.org/wiki/C%2B%2B_Programming/Threading Tutorial and sample code - C++ Multithreading http://www.tutorialspoint.com/cplusplus/cpp_multithreading.htm - Multithreading pthread http://www.bogotobogo.com/cplusplus/multithreading_pthread.php - Posix threads C http://codebase.eu/tutorial/posix-threads-c/ - Code project http://www.codeproject.com/Articles/14746/Multithreading-Tutorial Tutorial Youtube Video - C++ Multithreading Pt. 1 http://youtu.be/o9ToXNdHANE - C++ Multithreading Pt. 2 http://youtu.be/a4mRwxWBJxA
Your consent to our cookies if you continue to use this website.