At the era of multiprogramming, to make process-shifting more efficient, we’d rather do is leave processes in memory while switching them. Thus making each part of memory being protected from others invalid touch has became essential. - Abstraction of address space.
Thread and Process
Think of this is that each thread is very much like a separate process, except for one difference: they share the same address space and thus can access the same data.