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次, ...
随机推荐
- operations使用研究
简介 operations支持在peer或者orderer运行过程中,提供基于restful接口的运维服务.包括健康检查.日志level管理.指标metrics接口等.首先利用test-network ...
- Cookie会话跟踪技术
cookie是什么 cookie 也叫 HTTPCookie,是客户端与服务器端进行会话(session)使用的一个能够在浏览器本地化存储的技术. cookie就是为了存储 sessionID而诞生. ...
- 【基础知识】C++算法基础(头文件配置、获取输入、输出)
基础的头文件配置.输入输出 <iostream> 和<iostream.h>的区别:加.h是C中的做法,C++里一般不加.h,但相应的,要加using namspace std ...
- power shell 删除应用
public static UwpAppInfo SearchUwpAppByName(string appName) { UwpAppInfo app = null; try { string re ...
- 7、jmeter配置元件-HTTP信息头配置元件
根据对方服务器的要求来配置消息头 (重点)Gzip:发送给你压缩包 提高速度 性能等等 同样的数据 只要页面没有变更 就不会重新压缩 节省带宽
- Angular 管道和路由
管道pipe: 要在HTML模板中指定值转换,请使用管道运算符(|). {{interpolated_value | pipe_name}} 您可以链接管道,发送一个管道功能的输出以被另一个管道功能转 ...
- C#软件增加混淆防止反编译
使用Visual Studio新建一个名为"test"的命令行项目输入如图所示的代码并生成项目,这个项目很简单,就是程序启动时,调用"GetGUID"函数返回一 ...
- springboot + mybatisplus出现was not registered for synchronization because synchronization is not active
原因一:缺少事务注解,底层mybatisplus的接口方法有事务 原因二:该服务器被限制访问要连接的数据库 原因三:乐观锁失效 乐观锁由@version注解标注,有以下使用要求 支持的数据类型只有:i ...
- Vue的官方脚手架 Vue-cli 安装使用解析
------------恢复内容开始------------ 1.首先什么是vue-cli 可以知道Vue-cli是一个官方提供的脚手架,主要作用是用来快速搭建Vue的项目模板,可以预先定义好项目的结 ...
- Nginx lavarel框架伪静态配置
location / { try_files $uri $uri/ /index.php$is_args$query_string; }