Currently, the time module has time.process_time(), a cross-platform function for getting per-process elapsed CPU time.
Similarly, we could expose time.thread_time(), to get per-thread elapsed CPU time.
On a modern POSIX platform, it can use clock_gettime(CLOCK_THREAD_CPUTIME_ID).
On Windows, it can use GetThreadTimes(): https://msdn.microsoft.com/en-us/library/ms683237%28VS.85%29.aspx
On other platforms, it can simply raise NotImplementedError.
Currently, you would need ctypes hacks to call GetThreadTimes(), which is not very nice.