java 线程2 线程与进程

来源:互联网 发布:尼罗河的女儿 知乎 编辑:程序博客网 时间:2024/05/16 11:16

线程与进程在操作系统的概念:

       1、进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。
       2、线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。
同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源。
       一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。
       进程间的通信有管道、信号等技术,同一进程下的线程共享该进程的所有资源。

他们之间的关系:

       1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程(通常说的主线程)。
       2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。
       3、线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
       4、处理机分给线程,即真正在处理机上运行的是线程。
       5、线程是指进程内的一个执行单元,也是进程内的可调度实体。 

java相关的API:

       进程主要包括表示进程的java.lang.Process类和创建进程的java.lang.ProcessBuilder类;
       表示线程的是java.lang.Thread类;
       在虚拟机启动之后,通常只有Java类的main方法这个普通线程运行,运行时可以创建和启动新的线程;还有一类守护线程(damon thread),守护线程在后台运行,提供程序运行时所需的服务。当虚拟机中运行的所有线程都是守护线程时,虚拟机终止运行。

参考资料:

http://blog.csdn.net/ls5718/article/details/51878770   JAVA线程与线程、进程与进程间通信

http://blog.csdn.net/truong/article/details/39228249/    java 进程间通讯的有几种方法?

http://lavasoft.blog.51cto.com/62575/27069/ Java多线程编程总结

http://www.runoob.com/java/java-multithreading.html   Java 多线程编程

http://blog.csdn.net/escaflone/article/details/10418651  Java 多线程 并发编程



1 0