Q:

Executors.newSingleThreadExecutor will always run on the same system core?

Given a threadpool from Executors.newSingleThreadExecutor(), will execute all of the requests on the same CPU core/thread or at every task it could pick a new one?

A:

A core and a thread are two different things. As far as physical core is concerned, the library documentation of ThreadPoolExecutor doesn't guarantee any such claim to bind a core to a thread. Neither does JVM out of the box provide such low level support to bind a thread to a physical core of the processor. 
Binding a process or thread to a processor is known as processor affinity. For whatever reason, if you wish to bind a thread to a particular core, you would want to look at this : https://github.com/OpenHFT/Java-Thread-Affinity. 
If your question is about thread and whether the same thread will execute all the tasks submitted to a pool? Then not necessarily, based on the idle time of the thread, the pool may terminate and create a new thread to execute a task. I hope this clears your query. 

