java中线程与进程的区别
1. 单位的不同
进程是系统分配资源的基本单位;
线程是系统调度执行的基本单位.
2. 独立与共享
每个进程拥有自己的独立内存空间和系统资源, 不同的进程之间彼此独立,无法直接共享数据;
线程是进程内的一个执行单元,一个进程可以包含多个线程,这些线程共享进程的内存空间和系统资源独立内存空间和系统资源.
3. 唯一与并发
在Java中,每个运行的Java程序都是一个进程。当你运行一个Java应用程序时,操作系统会为该程序分配一定的内存空间,并为其分配唯一的进程ID。
在Java中,每个Java程序至少包含一个主线程,主线程负责执行main()方法。通过创建额外的线程,可以实现并发执行任务的效果。
4. 开销
进程之间的切换开销较大,因为切换进程需要保存和恢复整个进程的状态信息。
由于线程共享进程的资源,线程之间的切换开销相对较小,因为切换线程只需要保存和恢复线程的状态信息,不需要切换内存空间。