Thread面试题
面试题目录https://www.cnblogs.com/Kaelthas/p/15005844.html
1、一个Thread对象代表一个线程,同一个线程能否多次启动?
不能,在Thread类中变量threadStatus=0表示线程未启动,调用start()前会检测该变量是否为零,如果等于1返回 IllegalThreadStateException
2、run() VS start() 区别
run()方法需要在继承Thread类后重写,这是线程启动后要执行的逻辑代码
start()方法是线程启动方法
Thread utilThread = new UtilThread();
utilThread.start();//这里父类引用utilThread在执行start()方法后,会调用子类的run()方法。
3、说一下多线程实现方式
Thread实现方式一: 继承Thread类 重写子类的run方法,创建该子类的对象 启动线程 start()
Thread实现方式二: 定义实现Runnable接口的子类实现Runnable接口的run方法,创建该子类对象在创建Thread对象的时候,将创建好的Runnable子类对象作为初始化参数,传递给Thread对象启动Thread对象(启动线程)+++++这里方法二明显好于方法1,因为有多重实现,继承只能单继承,将线程解耦,多线程数据共享
线程池。。
···
4、线程的状态(生命周期)
新建:线程处于刚刚创建的状态
就绪:有执行资格,等待cpu调度获得执行权
运行:取得执行权,正在cpu上执行
阻塞:无执行资格,无执行权
死亡:线程正常或异常终止(run()方法执行完毕),线程对象成为垃圾,等待垃圾回收器回收
5、
Thread面试题的更多相关文章
- java面试题之Thread和Runnable是什么关系?
Thread实现了Runnable接口,使得run方法支持多线程: 因类的单一继承原则,推荐多实用Runnable接口
- java面试题之Thread的run()和start()方法有什么区别
run()方法: 是在主线程中执行方法,和调用普通方法一样:(按顺序执行,同步执行) start()方法: 是创建了新的线程,在新的线程中执行:(异步执行) public class App { pu ...
- 阿里2014校招笔试题(南大)——利用thread和sleep生成字符串的伪随机序列
引言:题目具体描述记不大清了,大概是:Linux平台,利用线程调度的随机性和sleep的不准确性,生成一个各位均不相同的字符数组的伪随机序列.不得使用任何库函数.(这句记得清楚,当时在想线程库算不算, ...
- java面试题之Thread类中的start()和run()方法有什么区别
start()方法被用来启动新创建的线程,而且start()内部调用了run()方法, 区别: 当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动: start()方法才会启动新 ...
- JAVA面试题
在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- Java面试题整理一(侧重多线程并发)
1..是否可以在static环境中访问非static变量? 答:static变量在Java中是属于类的,它在所有的实例中的值是一样的.当类被Java虚拟机载入的时候,会对static变量进行初始化.如 ...
- c#面试题汇总
下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能“以不变应万变”.回答问题的时候能联系做过项目的例子是最好 ...
- 李洪强iOS经典面试题153- 补充
李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...
- java多线程--几个多线程面试题小结
自学了一段时间的多线程知识,尝试了做了几个编程题,发现想象中很简单的功能,自己真写起来要花费远超自己想象的功夫,知识点易学,不易用啊. 面试题1:编写程序实现,子线程循环10次,接着主线程循环20次, ...
随机推荐
- Shell 更多结构化命令(流程控制)
更多的结构化命令 上一章里,你看到了如何通过检查命令的输出和变量的值来改变 shell 脚本程序的流程.本章会继续介绍能够控制 shell 脚本流程的结构化命令.你会了解如何重复一些过程和命令,也就是 ...
- vue 项目页面刷新router-view控制
vue项目开发过程中,需要在页面提交表单信息之后清空还原,即恢复页面初始状态,第一想法就是对当前页面刷新,重新加载. 想起location.reload()方式和this.$router.go(0)方 ...
- python Queue(队列学习)
Python 的Queue模块中提供了同步的.线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue.这些队列都实 ...
- windows server 2012 AD域服务器的搭建安装 子域的创建加入 客户机加入域环境(Active Directory域)
1,安装Active Directory域前的准备工作 2,安装Active Directory域 3,加入子域(可选) 4,加入客户机 ******************************* ...
- Vue-router 中hash模式和history模式的关系
Vue-router 中hash模式和history模式的关系 众所周知,vue+vue-router能够构建一个SPA单页面应用, 打包后只会生成一个index.html文件,而项目内页面的切换其实 ...
- 2021.06.18 思科anyconnect安全移动客户端通知
mac系统更新后,开关机后都会弹出思科anyconnect安全移动客户端通知的弹框,很烦,所以要干掉它! 打开终端,执行以下两行命令即可: cd /Library/LaunchAgents/ mv / ...
- [Unity动画]07.Animation
一.面板信息 1.Length,单位是秒 2.如下,动画是30FPS,即1秒播放30帧 3.如下,显示0:18,前面的0表示秒数,后面的18表示帧数,计算方法是0.6*30=18 4.如下,1.333 ...
- 【Airtest相关】收集一些Airtest的介绍
1.项目简介 ui自动化一直是个让人头疼的事,主要是因为系统兼容性难度较大和开发维护成本比较高, 以前使用过appium,通用性比较差,并且开发有一定的基础才行,更难以忍受的是后期的维护成本:然后接触 ...
- 记一个线上问题,selectById查询id出现两条数据问题
查询selectById(),查询1529665444035670017(Long)结果出现两条数据: id:1529665444035670017,和id:1529665444035670018 调 ...
- sql union 和 union all
UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 但是需要注意: 1.union内部的select语句必须拥有相同数量的列. 2.列必须拥有相似的数据类型. 3.每条select语句 ...