程序、进程、线程的区别。

程序(program):是一个指令的集合。程序不能独立执行,只有被加载到内存中,系统为他分配资源后才能执行。

进程(process):一个执行中的程序称为进程。

进程是系统分配资源的独立单位,每个进程战友特定的地址空间。

程序是进程的静态文本描述。进程是程序在系统内顺序执行的动态活动。

线程(thread):是进程的“单一的连续控制流程”。

线程是CPU调度和分配的基本单位,是比进程更小的能独立运行的基本单位,也被称为轻量级的进程。

线程不能独立存在,必须依附于某个进程,一个进程可以包括多个并行的线程。

附:Java创建线程的两种方式,事实上其本质是一样的,因为thread类本身是实现了runnable接口的。

public class MyDefinedThread extends Thread{

	//重写run()方法
	@Override
	public void run() {
		//把线程需要执行的任务写在run()方法里;
	}	public static void main(String[] args) {
		MyDefinedThread mdt = new MyDefinedThread();
		mdt.start();	}
}
public class MyRunnable implements Runnable {
 @Override
	public void run() {
		//把线程需要执行的任务写在run()方法里;
	}

	public static void main(String[] args) {
		MyRunnable mr = new MyRunnable();
		//mr并不是一个线程对象,而是要作为参数传递到thread的构造方法中;“th”才是一个线程对象
		Thread th = new Thread(mr);   
		th.start();
	}}