线程是操作系统能够进行运算的最小单位,被包含在进程中,是进程的实际运算单位。可以使用多线程提高运算速度。
进程由操作系统分配的内存空间,包含一个或多个线程。
一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。
线程是进程中的一部分,进程包含多个线程在运行。
一个程序至少有一个进程,一个进程至少有一个线程。
总结:
1) 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
2)资源分配给进程,同一进程的所有线程共享该进程的所有资源(内存、变量、常量等)
3)真正在机器上运行的是线程。
4)不同进程的线程间要利用消息通信的办法实现同步
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

ArrayList、LinkedList是非线程安全的,Vector是线程安全的;HashMap是非线程安全的,HashTable是线程安全的;StringBuilder是非线程安全的,StringBuffer是线程安全的。
示例
public static void main(String[] args){ // 进行10次测试 for(int i = 0; i < 10; i++){ test(); } } public static void test(){ // 用来测试的List List