How Mozilla Firefox and Google Chrome use processes and threads
Processes and threads
A Process can be described as executing a program of an application. It contains an executable program, associated data needed by the program (variables, workspace, buffers, etc.) and the execution context of the program.
With the introduction of multithreading techniques, the process was divided into threads that can run concurrently. There can be one or more threads to a process. A thread has access to the memory and resources of its process, shared with all other threads in that process.
Google Chrome
Google Chrome has a multi-process architecture. Each process has many threads including the main thread. When a new tab is opened it creates a new process for that tab.
Mozilla Firefox
In the beginning, Mozilla Firefox was using one process to run. But current versions of Mozilla Firefox uses separate processes for browser UI and web content. It uses separate threads for each tab.
Google Chrome vs Mozilla Firefox
Since Google Chrome uses separate process for each tab, it consumes much RAM usage than Mozilla Firefox. It has to maintain separate instances of its chrome engine in every process. Nearly it consumes 100mb per tab.
Firefox uses separate threads for each tab. Since they belong to the same process, it does not need a separate instance of its browser engine. Therefore it does not consume much RAM usage comparing to Google Chrome. And it is very faster when passing context between tabs since they belong to the same process.
If some process blocking event occurred, in Google Chrome it does not affect other tabs. But in Firefox it might block other tabs since they are running inside the same process.