什么时候应该使用ThreadLocal变量?它是如何使用的?

从我在Java中使用线程的时间来看,我发现了两种编写线程的方法:使用可运行的机具:或者,使用扩展线程:这两个代码块有什么显著的区别吗?