1、一个程序至少有一个进程;一个进程中至少包含一个线程。
2、进程在内存中拥有独立的存储空间,而多个线程则共享它所依赖的进程的存储空间。
3、进程和线程对操作系统的资源管理的方式不同。
3.1、由于多个线程共享一个进程的存储空间(内存地址),也就是说多个线程是共享堆栈和局部变量的。即:多个线程只是一个进程中不同的执行路径(例如由多个线程执行同一个类),所以在进程中,一个线程崩溃就等于整个进程都崩溃掉了(共享一个存储空间)。
3.2、而由于进程具有独立的存储空间,所以当一个进程崩溃后,如果此进程没有其他交互式操作,是不会对其他进程产生影响的。(例如A进程负责读取,B进程负责写入,B进程所写入的数据是由A进程提供的,当A进程崩溃后,B进程没有正确的数据源,这就是影响到了B进程。而当B进程崩溃后,由于A进程是提供数据的,它无需考虑关于写入的问题,所以对A进程不会产生影响。)
2、进程在内存中拥有独立的存储空间,而多个线程则共享它所依赖的进程的存储空间。
3、进程和线程对操作系统的资源管理的方式不同。
3.1、由于多个线程共享一个进程的存储空间(内存地址),也就是说多个线程是共享堆栈和局部变量的。即:多个线程只是一个进程中不同的执行路径(例如由多个线程执行同一个类),所以在进程中,一个线程崩溃就等于整个进程都崩溃掉了(共享一个存储空间)。
3.2、而由于进程具有独立的存储空间,所以当一个进程崩溃后,如果此进程没有其他交互式操作,是不会对其他进程产生影响的。(例如A进程负责读取,B进程负责写入,B进程所写入的数据是由A进程提供的,当A进程崩溃后,B进程没有正确的数据源,这就是影响到了B进程。而当B进程崩溃后,由于A进程是提供数据的,它无需考虑关于写入的问题,所以对A进程不会产生影响。)