All routines that can potentially be called by a thread from a multithreaded program should be MT-Safe. Therefore, two or more activations of a routine must be able to correctly execute concurrently. So, every library interface that a multithreaded program uses must be MT-Safe.
Not all libraries are now MT-Safe. The commonly used libraries that are MT-Safe are listed in the following table. The libraries are accessed in the /usr/lib directory.
Interfaces that are not safe have thread-safe interfaces of the form *_r, often with different semantics.
Math library that is compliant with System V Interface Definition, Edition 3, X/Open, and ANSI C
Alternative mmap-based memory allocation library, see mapmalloc()
C++ runtime and iostream library for Oracle C++ 4.0 compilers
Routines in libraries that are not guaranteed to be MT-Safe can safely be called by multithreaded programs only when such calls are single threaded.