I am running a job in local mode, configured with local for the sake of the example. The timeline view in Spark UI is as follows:
It shows that there are actually two threads running, though their overlapping is very small. To validate this, I also added some change to Spark's task runner that prints `Thread.currentThread().getId()`, and there indeed prints out two thread ids.
Is this some behavior from Spark's thread pool to improve performance?