考察点:JAVA线程状态1. 新建( new ):新创建了一个线程对象。 2. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权 。 3. 运行( running ):可运行状态( runnable )的线程获得了 cpu 时间片( timeslice ) ,执行程序代码。 4. 阻塞( block ):阻塞状态是指线程因为某种原因放弃了 cpu 使用权,也即让出了 cpu timeslice ,暂时停止运行。直到线程进入可运行( runnable )状态,才有 机会再次获得 cpu timeslice 转到运行( running )状态。阻塞的情况分三种: (一). 等待阻塞:运行( running )的线程执行 o . wait ()方法, JVM 会把该线程放 入等待队列( waitting queue )中。 (二). 同步阻塞:运行( running )的线程在获取对象的同步锁时,若该同步锁 被别的线程占用,则 JVM 会把该线程放入锁池( lock pool )中。 (三). 其他阻塞: 运行( running )的线程执行 Thread . sleep ( long ms )或 t . join ()方法,或者发出了 I / O 请求时, JVM 会把该线程置为阻塞状态。 当 sleep ()状态超时、 join ()等待线程终止或者超时、或者 I / O 处理完毕时,线程重新转入可运行( runnable )状态。 5. 死亡( dead ):线程 run ()、 main () 方法执行结束,或者因异常退出了 run ()方法,则该线程结束生命周期。死亡的线程不可再次复生。
本文向大家介绍请回答一下Java中有几种线程池?并且详细描述一下线程池的实现过程相关面试题,主要包含被问及请回答一下Java中有几种线程池?并且详细描述一下线程池的实现过程时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程池 1、newFixedThreadPool创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入
本文向大家介绍ajax的请求状态有哪几种?相关面试题,主要包含被问及ajax的请求状态有哪几种?时的应答技巧和注意事项,需要的朋友参考一下 readyState:0、1、2、3、4 0:UNINITIALIZED //未初始化 1:LOADING //加载 2:LOADED //加载完成 3:INTERACTIVE //交互 4:COMPLETED //完成
本文向大家介绍请列举一下启动线程有哪几种方式,之后再说明一下线程池的种类都有哪些?相关面试题,主要包含被问及请列举一下启动线程有哪几种方式,之后再说明一下线程池的种类都有哪些?时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程池 ①启动线程有如下三种方式: 一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。
本文向大家介绍请描述下ajax的请求都有哪些步骤?相关面试题,主要包含被问及请描述下ajax的请求都有哪些步骤?时的应答技巧和注意事项,需要的朋友参考一下 1.创建XMLHttpRequest let xhr=new XMLHttpRequest; 2.连接服务器 xhr.open("get","goods.json",true) true代表异步,false代表同步。goods.json代表请求
本文向大家介绍创建线程池有哪几种方式?相关面试题,主要包含被问及创建线程池有哪几种方式?时的应答技巧和注意事项,需要的朋友参考一下 线程池创建有七种方式,最核心的是最后一种: 1. newSingleThreadExecutor():它的特点在于工作线程数目被限制为 1,操作一个无界的工作队列,所以它保证了所有任务的都是被顺序执行,最多会有一个任务处于活动状态,并且不允许使用者改动线程池实例,因此
本文向大家介绍请简单描述一下JVM分区都有哪些?相关面试题,主要包含被问及请简单描述一下JVM分区都有哪些?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JVM java内存通常被划分为5个区域:程序计数器(Program Count Register)、本地方法栈(Native Stack)、方法区(Methon Area)、栈(Stack)、堆(Heap)。