zoukankan      html  css  js  c++  java
  • 多线程相关基础知识

    进程:一般来说启动了一个应用程序就会启动一个进程,当然有时候也会启动多个进程。比如说启动了QQ的时候除了启动QQ.exe,还会启动一个QQProtect.exe和TXPlatform.exe进程。每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。进程是内存资源分配的基本单位。

    线程:线程是进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存空间。线程是CPU分配的基本单位。

    线程在它的生命周期中会处于各种不同的状态:新建、就绪、运行、阻塞、死亡。

    1. 新建(New)

    用new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存。仅仅作为一个对象实例存在。

    2.就绪(Ready)

    当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。处于这个状态的线程位于Java虚拟机的可运行池中,等待cpu的使用权。

    3. 运行状态(Running)

    处于这个状态的线程占用CPU,执行程序代码。在并发运行环境中,如果计算机只有一个CPU,那么任何时刻只会有一个线程处于这个状态。

     只有处于就绪状态的线程才有机会转到运行状态

    4. 阻塞状态(Blocked)

    阻塞状态是指线程因为某些原因放弃CPU,暂时停止运行。当线程处于阻塞状态时,直到线程重新进入就绪状态,它才会有机会获得运行状态。

    5 .死亡状态(Dead)

    当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。

  • 相关阅读:
    jQuery及javascript DOM创建节点(三)
    jQueryEasyUI Window的基本使用
    3.1、值类型
    手动依赖注入(二)
    3.1.2、字符类型
    不错不错
    我们应该讨论什么? 就面向对象的讨论所引发的一些思考
    保存个地址, 顺便问个问题~
    嗯嗯, 今天很高兴
    方法级AOP: 又一个补丁
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/3610646.html
Copyright © 2011-2022 走看看