Depends. For example the request, response and exception objects are created for the current thread and therefore they are safe. The application and session objects can be accessed by several threads and therefore not thread safe.
It's important to note, though, that if you store objects in the application, session, request or page contexts, they are not guaranteed to be thread safe. Although the request and page objects themselves are threadsafe, objects stored in them are only safe if they are not also used by other threads. Remember that one of these contexts only stores a reference to an object, not a separate copy of it. I hope that's not too confusing.