原文:Java里一个线程两次调用start()方法会出现什么情况

这里有一道经典的面试题: 一个线程两次调用start 方法会出现什么情况 ,咱们这次结合案例从线程源码的角度炒剩饭。 答:Java的线程是不允许启动两次的,第二次调用时,线程可能处于终止或者其它 非NEW 状态,必然会抛出IllegalThreadStateException,这是一种运行时异常,多次调用start被认为是编程错误。如果业务需要线程run中的代码再次执行,请重新启动一个线程实例。 ...

2021-04-17 14:52 0 413 推荐指数:

查看详情

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

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

Thu Apr 16 05:41:00 CST 2020 0 851
线程同时调用一个函数会出现什么情况?

  其实你可以这样想,函数本身只是代码,代码是只读的,无论多少个线程同时调都无所谓(因为只读嘛)。   但是函数里面总要用到数据,如果【用thread_local 解决】数据属于线程(比如函数参数、局部变量,存在栈上,每个线程都有自己的栈),那么同时调还是没关系,因为用的本线程的数据 ...

Mon Dec 28 18:03:00 CST 2020 0 325
线程同时调用一个函数会出现什么情况?

最近在研究多线程,然后突然想到如果线程同时访问一个函数的话,要不要加锁呢,加锁怎么加,不加又怎样这样的问题..然后去网上找了些帖子学习学习...... 上面的代码明显执行串了!!!! 函数本身只是代码,代码是只读的,无论多少个线程同时调用都无所谓,因为是只读嘛.但是函数里面总要 ...

Sun May 08 01:34:00 CST 2016 0 23777
面试连环炮系列(十):一个线程调用两次start会怎么样

一个线程调用两次start会怎么样 Java线程是不允许启动两次的,第二调用必然会抛出IllegalThreadStateException,这是一种运行时异常。 谈谈线程的生命周期和状态转移 新建(NEW),表示线程被创建出来还没真正启动的状态,可以认为它是 ...

Sat Sep 28 18:32:00 CST 2019 0 341
一个线程多次调用start()会出现的问题

测试代码: 测试结果:   线程首先会运行一,然后抛出java.lang.IllegalThreadStateException异常。 接下来深入源码分析下原因:   我们根据控制台的异常信息,定位到Thread.java的第708行,也就start()方法内部,打个 ...

Tue Jun 19 00:42:00 CST 2018 0 5605
提交表单的时候会出现提交两次的问题

咳咳!小白的第一篇随笔 实习期的第一项任务-》完成一个注册功能 所有功能都都可以正常运行了,到了套界面这一步骤的时候,等我套好注册界面,再点提交给出了个提示 第一个提示: 紧接着第二个提示: 找了好久才找到,原因是在提交按钮那里调用两次save()函数,对于js还是相当 ...

Tue Apr 30 19:23:00 CST 2019 0 1292
在多线程环境中使用HashMap会有什么问题,在什么情况下使用get()方法会产生无限循环?

问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的。比如,你在一个线程初始化了一个HashMap然后在多个其他线程对其进行读取,这肯定没有任何问题。有个例子就是使用 ...

Tue Apr 10 05:20:00 CST 2018 0 3174
通过addEventListener 绑定的事件会出现多次调用方法情况

原代码: 发现的问题是,第一触发的时候执行一,第二触发的时候执行两次.....第N触发的时候执行N。 一开始还以为是 addEventListener绑定事件 的原因,在结尾出还添加了代码 removeEventListener 依然不起作用。 修改方案 ...

Fri Aug 14 01:49:00 CST 2020 0 878
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM