What does thread safety mean? This must be clear first. Thread-safe classes, which refer to the access of shared global variables within a class, must be guaranteed to be unaffected by the form of multithreading. This class is not thread-safe if the structure of these variables is corrupted due to multi-threaded access (such as modification, traversal, viewing) or if the atomicity of these variable operations is compromised.
A blocking call means that the current thread is suspended until the call results are returned (the thread goes into a non-executable state where the CPU does not allocate a time slice to the thread, that is, the thread pauses). Functions are returned only after the result is obtained.
The concept of non-blocking and blocking corresponds to a function that does not block the current thread and returns immediately until the result is not immediately available.
Reference:
http://blog.csdn.net/madun/article/details/20313269
http://hellosure.iteye.com/blog/1121157
Http://www.cnblogs.com/orez88/articles/2513460.html
Http://www.cnblogs.com/zhangjun516/archive/2013/04/17/3025902.html
Thread-safe and thread-insecure, blocking and non-blocking