1、 不同的进程使用不同的内存空间、所有的线程共享一片相同的内存空间;
2、 每个线程都拥有单独的栈内存用来存储本地数据;
3、 Start方法被用来启动新创建的线程,run方法只会是在原来的线程中调用并没有新线程启动;
4、 Runnable接口从JDK1.0就有,Callable是从JDK1.5才有,Callable可以有返回值和抛出异常,Runable则没有;
5、 Volatile是一个特殊的修饰符,volatile变量可以保证下一个读取操作会在前一个写操作之后发生;
6、 JavaAPI并没有提供一个兼容且线程安全的方法来停止一个线程,当run或call方法执行完毕后线程自动结束,如果需要手动结束一个线程,可以使用volatile布尔变量来退出run方法
7、 当一个未捕获异常将造成线程中断的时候JVM调用Thread.getUncaughtExceptionHandler来查询线程的UncaughtExceptionHandler并将线程和异常作为参数传递给uncaughtException方法来处理;
8、 FutureTask如果运算尚未完成get方法则将会堵塞;