I can’t remember if threads are core bound or not.
On Linux, by default they’re not. getcpu(2) says:
The getcpu() system call identifies the processor and node on which the
calling thread or process is currently running and writes them into the
integers pointed to by the cpu and node arguments. ...
The information placed in cpu is guaranteed to be current only at the
time of the call: unless the CPU affinity has been fixed using
sched_setaffinity(2), the kernel might change the CPU at any time.
(Normally this does not happen because the scheduler tries to minimize
movements between CPUs to keep caches hot, but it is possible.) The
caller must allow for the possibility that the information returned in
cpu and node is no longer current by the time the call returns.
Maybe I’m wildly misunderstanding something, not helped by the fact that I work very little with Web technologies, but…
Does that mean only humans can interact with a REST system? But then it doesn’t really deserve the qualifier of “application programming interface”.