I came across this while writing some tests and believe that it is also useful for software engineering outside of tests.
Currently, when a new thread is spawned, it returns a JoinHandle with which you can get the thread handle or join (wait for it to run to completion). What I am suggesting is the ability to test if a thread has finished or not.
It would have the following signature: pub fn try_join(self) -> Option<Result<T>>. I think that this would be useful for work sharing or even monitoring since you can get some information about the thread without blocking yours. (kill if it is running to long but still do work in the meantime).