It is assumed that the basic Prolog execution is thread-safe. Various problems are to be expected though, both dead-locks as well as not-thread-safe code in builtin-predicates.