cudaThreadExit( void ) Vs cudaThreadSynchronize() Differnce between the two

Hi,

Can someone help me understand basic difference between the two: cudaThreadExit( void ) Vs cudaThreadSynchronize()

Thanks

cudaThreadExit() frees all memory you have allocated on the GPU, shuts down your GPU context.
cudaThreaSynchronize() waits until all previous asynchronous operations on the GPU have completed.

Speaking in Matrix terms: One is the red pill, the other is the blue pill.