Java面试宝典
来源:互联网 发布:vb wince 全屏 编辑:程序博客网 时间:2024/06/05 02:33
11.进程和线程的区别是什么?
进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。
12.创建线程有几种不同的方式?你喜欢哪一种?为什么?
有三种方式可以用来创建线程:
- 继承Thread类
- 实现Runnable接口
- 应用程序可以使用Executor框架来创建线程池
实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用
13.概括的解释下线程的几种可用状态。线程在执行过程中,可以处于下面几种状态:
- 就绪(Runnable):线程准备运行,不一定立马就能开始执行。
- 运行中(Running):进程正在执行线程的代码。
- 等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
- 睡眠中(Sleeping):线程被强制睡眠。
- I/O阻塞(Blocked on I/O):等待I/O操作完成。
- 同步阻塞(Blocked on Synchronization):等待获取锁。
- 死亡(Dead):线程完成了执行。
在Java语言中,每一个对象有一把锁。线程可以使用synchronized关键字来获取对象上的锁。synchronized关键字可应用在方法级别(粗粒度锁)或者是代码块级别(细粒度锁)。
15.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?
监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联。线程在获取锁之前不允许执行同步代码。
阅读全文
0 0
- java 面试笔试宝典
- Java程序员面试宝典
- Java程序员面试宝典
- java面试宝典
- Java 面试 宝典 (1)
- Java 面试 宝典 (2)
- java面试宝典
- java程序员面试宝典
- JAVA程序员面试宝典
- JAVA面试宝典
- Java程序员面试宝典
- java面试宝典
- java面试宝典
- JAVA程序员面试宝典
- JAVA面试宝典
- JAVA程序员面试宝典
- JAVA面试经验宝典
- java程序员面试宝典
- 阻塞非阻塞与同步异步的区别
- dispatch_after使用方法详解
- maven编译后资源文件发生改变问题
- 开源跨平台开发框架 [记录][U01]
- c/c++ sort函数、qsort函数使用
- Java面试宝典
- 一、数组的封装
- Maven 将本地jar加入maven仓库
- 源码阅读--Glide
- TCP数据流—滑动窗口,拥塞窗口,慢启动,Nagle算法,经受时延的确认等
- Centos6.5使用yum安装mysql
- 记录stdint.h头文件
- Java多线程学习
- 基于vs2008编译Tesseract 3.02.02