Look at the following code from the ThreadFactory
interface
public Thread<T> newThread(Runnable<T> runnable);
What does s the type parameter convey here ? I mean Collection makes sense since T is specifying the type of objects that can go into the Collection but what does Runnable or Thread mean ?