原文:面试连环炮系列(十):一个线程调用两次start会怎么样

一个线程调用两次start会怎么样 Java的线程是不允许启动两次的,第二次调用必然会抛出IllegalThreadStateException,这是一种运行时异常。 谈谈线程的生命周期和状态转移 新建 NEW ,表示线程被创建出来还没真正启动的状态,可以认为它是个Java内部状态。 就绪 RUNNABLE ,表示该线程已经在JVM中执行,当然由于执行需要计算资源,它可能是正在运行,也可能还在等 ...

2019-09-28 10:32 0 341 推荐指数:

查看详情

一个线程两次或者多次调用start()方法会怎么

会抛出IllegalThreadStateException() 示例代码如下: 之所以会抛出异常,是因为在start()函数里,一开始会检查线程状态,如果线程状态不为0,会抛出该异常。线程的状态初始值为0,当第一进入start()方法后,会修改线程状态,使其不为0,第二进入 ...

Thu Apr 16 05:41:00 CST 2020 0 851
面试连环系列(九):为什么ConcurrentHashMap是线程安全的

为什么ConcurrentHashMap是线程安全的 JDK1.7中,ConcurrentHashMap使用的锁分段技术,将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。 那说说JDK1.7中 ...

Sat Sep 28 00:11:00 CST 2019 0 747
面试连环系列(三):synchronized怎么用的

synchronized怎么用的? 用过,synchronized是常用的并发控制关键字,简单的说就是访问加锁。它可以修饰静态方法或者一个类的class对象,这叫类锁;可以修饰普通方法或者代码块,这叫对象锁。 synchronized是可重入锁吗? 从互斥锁的设计上来说,当一个线程 ...

Thu Sep 05 00:38:00 CST 2019 0 419
面试连环系列汇总

):一个线程调用两次start会怎么 面试连环系列(十二):说说Atomiclnteger的使 ...

Wed Oct 09 00:08:00 CST 2019 0 718
面试连环系列(十六):线程池的使用场景有哪些

线程池的使用场景有哪些 线程池适合单系统的大量的异步任务处理,比如发送短信、保存日志。 说说创建线程池的重要参数 corePoolSize:线程池的大小。线程池创建之后不会立即去创建线程,而是等待线程的到来。当前执行的线程数大于该值时,线程会加入到缓冲队列 ...

Sun Oct 13 00:04:00 CST 2019 0 923
Java里一个线程两次调用start()方法会出现什么情况

  这里有一道经典的面试题:“一个线程两次调用start()方法会出现什么情况?”,咱们这次结合案例从线程源码的角度炒剩饭。   答:Java的线程是不允许启动两次的,第二调用时,线程可能处于终止或者其它(非NEW)状态,必然会抛出IllegalThreadStateException,这是 ...

Sat Apr 17 22:52:00 CST 2021 0 413
面试连环系列(五):你们的项目为什么要用RabbitMQ

你们的项目为什么要用RabbitMQ? 消息队列的作用是系统解耦、同步改异步、请求消峰,举个下订单的例子: 前端获取用户订单信息,请求后端的订单创建接口。这个接口并不直接请求订单服务,而是首先生成唯一订单编号,再组装一个订单消息并发送给RabbitMQ,然后返回唯一订单编号给前端。前端 ...

Fri Sep 06 01:24:00 CST 2019 0 641
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM