线程的学习(一):了解什么是线程

一、什么是线程

    首先在了解线程时,了解什么是进程:进程是代码在数据集合上的一次运行活动 , 是系统进行资源分配和调度的基本单位。

    那么线程又是什么呢?线程则是进程的一个执行路径, 一个进程中至少有一个线程,进程中的多个线程共享进程的 资源。线程是进程中的一个实体,线程本身是不会独立存在的。(但cpu资源是被分配到线程中的)

    举个例子:在使用main启动程序时,启动了一个JVM进程,其中main函数就是一个线程,还有比方说垃圾回收线程。

二、线程的结构

    一个进程中有多个线程,多个线程共享进程的堆和方法区资源,但是每个线程有自己的程序计数器和栈区域 。

    程序计数器是一块内存区域,用来记录线程当前要执行的指令地址 。因为cpu一般使用轮转方式被线程占用,当一次线程运行一段时间运行下一个线程时,程序计数器记录当前线程的执行地址。

    每个线程都有其栈资源,存储该线程局部变量。而堆是进程中最大的一块内存,堆是被进程中的所有线程共享的,是进程创建时分配的,堆里面主要存放使用new 操作创建的对象实例 。方法区则用来存放 NM 加载的类、常量及静态变量等信息,也是线程共享的 。

    三、线程的生命周期

分为 :  新建 New   就绪 Runnable   运行 Running    阻塞 Blocked     死亡 Dead

   


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。