Процесс — отдельная программа с собственным адресным пространством, дескрипторами и ресурсами. Поток — «легковесный процесс» внутри процесса: разделяет его память и ресурсы, но имеет свой стек и регистры. У процесса минимум один поток (main thread). Потоки дешевле в создании и переключении, но требуют синхронизации из-за общей памяти.