الـ process (العملية) هي برنامج قيد التشغيل بذاكرته (فضاء عناوينه) المعزولة الخاصة؛ أمّا الـ thread (الخيط) فهو وحدة تنفيذ داخل عملية. يمكن لعملية واحدة أن تضم خيوطًا كثيرة، وهذه الخيوط تتشارك ذاكرة العملية — لكن كل عملية معزولة عن كل عملية أخرى.
ماذا يملك كلٌّ منهما
PROCESS A PROCESS B
┌─────────────────────────────┐ ┌───────────────┐
│ address space (code/heap) │ │ address space │
│ file descriptors, PID │ │ (isolated) │
│ ┌────────┐ ┌────────┐ │ │ ┌────────┐ │
│ │thread 1│ │thread 2│ ... │ │ │thread 1│ │
│ │ stack │ │ stack │ │ │ │ stack │ │
│ │ regs/PC│ │ regs/PC│ │ │ └────────┘ │
│ └────────┘ └────────┘ │ └───────────────┘
│ ▲ shared heap, globals, fds│
└─────────────────────────────┘
