没有合适的资源?快使用搜索试试~ 我知道了~
java多线程
需积分: 0 1 下载量 126 浏览量
2014-09-11
09:35:25
上传
评论
收藏 59KB DOC 举报
温馨提示
试读
6页
JAVA多线程和并发基础面试问答,主要针对面授的问题
资源详情
资源评论
资源推荐
多线程和并发问题是 Java 技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角
度列出了大部分重要的问题,但是你仍然应该牢固的掌握 Java 多线程基础知识来对应日后
碰到的问题。(校对注:非常赞同这个观点)
Java 多线程面试问题
1. 进程和线程之间有什么不同?
一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。
而线程是在进程中执行的一个任务。Java 运行环境是一个包含了不同的类和程序的单一进
程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以
共享进程中的资源。
2. 多线程编程的好处是什么?
在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU 不会因为某个线程需要
等待资源而进入空闲状态。多个线程共享堆内存(heap memory),因此创建多个线程去执
行一些任务会比创建多个进程更好。举个例子,Servlets 比 CGI 更好,是因为 Servlets 支
持多线程而 CGI 不支持。
3. 用户线程和守护线程有什么区别?
当我们在 Java 程序中创建一个线程,它就被称为用户线程。一个守护线程是在后台执行并
且不会阻止 JVM 终止的线程。当没有用户线程在运行的时候,JVM 关闭程序并且退出。
一个守护线程创建的子线程依然是守护线程。
4. 我们如何创建一个线程?
有两种创建线程的方法:一是实现 Runnable 接口,然后将它传递给 Thread 的构造函数,
创建一个 Thread 对象;二是直接继承 Thread 类。若想了解更多可以阅读这篇关于如何在
Java
中创建线程 的文章。
5. 有哪些不同的线程生命周期?
当我们在 Java 程序中新建一个线程时,它的状态是 New。当我们调用线程的 start()方法
时,状态被改变为 Runnable。线程调度器会为 Runnable 线程池中的线程分配 CPU 时间
并且将它们的状态改变为 Running。其他的线程状态还有 Waiting,Blocked"和 Dead。
6. 可以直接调用 Thread 类的 run()方法么?
当然可以,但是如果我们调用了 Thread 的 run()方法,它的行为就会和普通的方法一样,
为了在新的线程中执行我们的代码,必须使用 Thread.start()方法。
7. 如何让正在运行的线程暂停一段时间?
我们可以使用 Thread 类的 Sleep()方法让线程暂停一段时间。需要注意的是,这并不会让
线程终止,一旦从休眠中唤醒线程,线程的状态将会被改变为 Runnable,并且根据线程
调度,它将得到执行。
8. 你对线程优先级的理解是什么?
每一个线程都是有优先级的,一般来说,高优先级的线程在运行时会具有优先权,但这依
赖于线程调度的实现,这个实现是和操作系统相关的(OS dependent)。我们可以定义线程
00u0o
- 粉丝: 48
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0