概念
要了解线程,就要先知道进程的概念。
进程:进程是程序的一次执行过程,是在系统中能独立运行并作为资源分配的基本单位,是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体。
这里注意的是程序和进程的区别:
1,进程是一个动态概念,程序是一个静态概念。
2,进程具有并发性,程序没有。
3,进程是资源分配和处理机调度的独立单位,其并发性受系统的制约。
4,一个程序,多次执行,对应多个进程。不同的进程可以包含同一程序。
接下来我们来说线程:进程可以进一步细化为线程,进程的一个执行路径就是线程。
在java中我们弱化进程的概念,使用线程。
多个线程在内存模型中公有的部分是:方法区和堆栈
私有的部分是:虚拟机栈,本地方法栈,程序计数器
线程的创建
Thread是一个类,实现了Runnable接口,Runnable接口包含run()方法
run()方法的功能需要自己添加。
创建一:继承Thread类
继承二:实现Runnable接口
继承三:匿名内部类
那么Thread类和Rununable接口的区别是什么?
相同点:都是实现多线程
不同点:Thread类自身实现了Runnable接口,Runnable具有更好的延展性。Runnable还用于资源共享,即多个资源基于Runnable接口实现,那他们之间可以实现资源共享。