How does C++ handle concurrency and parallelism?