A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fzc123 中级黑马   /  2016-7-27 00:13  /  623 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

七、多线程
133.进程和线程?
进程是可执行的程序(.exe)。
线程是是进程的执行路径(执行单元)。
多线程:进程有多条执行路径,合起来就是多线程。

134.多线程并发和多线程并行是什么呢?
答:多线程并发指的是:两个或者多个任务同时请求执行,但是CPU同时只能执行一个,就会安排它们交替执行,因为间隔的时间比较短,我们看起来像同时执行的。

并行是两个或多个任务同时执行,前提是需要有多核CPU。

135.多线程的执行原理?
答: CPU在做着高速的切换。

136. 线程的执行具有随机性和延迟性。

137.线程的默认命名规则?
答:Thread-编号,编号是从0开始的。

138.线程的优先级的范围是多少?默认的优先级是?
答:线程的优先级范围是1——10。默认的优先级是5.

139.Java程序的启动原理?
答:JVM启动一个主线程,再由主线程调用某个类的main方法。

140.Java程序是多线程的吗?
答:是的,至少开启了主线程和垃圾回收线程。

141.线程的优先级越高,代表这个线程一定是第一个执行的吗?
答:不是,线程的优先级越高代表着在一定程度上让该线程可以获取更多的执行机会(执行权)。

142.线程的两种实现方式的区别?
答:
继承Thread类:
好处是:代码简单。因为是继承,所以能够直接使用Thread类的方法。
弊端是:扩展性比较差,因为继承了Thread类,所以不能再继承其他的类。
实现Runnable接口:
好处是扩展性比较强。
缺点时:代码比较冗余,因为不是继承Thread类,无法直接使用thread中的方法。

143.同步代码块和同步方法的锁是谁?
答;同步代码块的锁可以是任意类型的对象;非静态同步方法的锁是this;静态方法的锁是该类的字节码文件。(类名.class)

144.实现Runnable和Callable的区别?
答:实现Runnable接口的run方法没有返回值,不能抛异常;
而实现Callable接口的call方法可以抛异常,有返回值。

Runnable接口的实现类对象既可以作为参数传递给Thread的构造方法,也可以用线程池submit的参数;
Callable接口的实现类对象只适应于线程池。

145.线程的生命周期(线程的五种状态)是什么?
答:新建、就绪、运行(运行的时候可能发生阻塞)、死亡。
线程的六种状态:新建、就绪、运行(运行的时候可能阻塞或者等待)、死亡。

146.sleep和wait的区别?
答:(1)sleep()必须传参,表示让线程睡制定时间,到点后自动醒来,睡的时候不释放资源。。
(2)wait()可传可不传参数,不传就立马等待,传就过制定时间再等待。必须被唤醒,等待的时候回释放资源。。


147.什么时候考虑使用同步?
多线程,并发,操作同一数据。

148.为什么wait()和notify()定义在Object中?
答:因为锁对象可以是任意类型的对象。

2 个回复

倒序浏览
顶贴是种美德,我相信每一个被我顶贴的人一定也会关注我的帖子的
回复 使用道具 举报
表示还没看懂,汗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马