Pour compléter ce qu'a dit lorill : les seules informations propres à un thread (au sein d'un processus) sont sa pile d'exécution (les différentes fonctions appelées depuis la fonction utilisée pour le démarrer, leurs arguments et leurs variables locales) et, éventuellement, une zone mémoire dédiée appelée Thread Local Storage (sous Windows).
Tout le reste est partagé avec les autres threads du processus, y compris les variables globales, et tout l'environnement (les variables d'environnement genre HOME, PATH, ..., les fichiers ouverts, etc).
Par contre, 2 processus sont totalement indépendants, ils ne partagent aucune donnée (par contre, ils peuvent quand même partager leur code, s'il s'agit du même programme lancé 2 fois).