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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.等待唤醒机制存在的意义是什么?

答:多个线程并发执行时,在默认情况下CPU是随机切换线程的,当我们需要多个线程共同完成一个任务,并且我们希望他们由规律的执行,那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。所以等待唤醒机制存在的意义是多个线程处理统一个资源时,避免对同一资源进行操作时出现线程安全问题。



2.调用wait()方法和notify()方法,需要注意什么?

答:

(1)wait()方法和notify()方法必须由同一个锁对象调用。

(2)wait()方法和notify()方法都是Obeject类中的方法。

(3)wait()方法和notify()方法必须在同步代码块或者是同步函数中使用。



3.使用线程池来操作线程有什么好处?

答:

(1)降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用

(2)提高相应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。

(3)提高线程的客观理性。可以根据系统的承受能力,调整线程池工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下。



4.传统的面向对象编码有什么弊端?

答:传统的面对对象编码是完成一件事,先去找能做这个事的对象,然后调用方法。写法太过冗余,因为语法的原因,导致我们不得不去做一些事情



5.什么情况下可以使用lambda表达式来替换面向对象编码?

答:前提:

(1)必须有函数式接口,即这个接口有且仅有一个抽象方法

(2)必须有上下文引用,也就是方法的参数数据类型或局部变量数据类型必须为Lambda对应的接口类型



6.什么情况下lambda表达式可以简写?

答:

(1)(参数列表):括号中参数列表的数据类型,可以省略不写

(2)(参数列表):括号中的参数如果只有一个,那么参数的数据类型可以省略

(3){一些代码}:如果{}中的代码只有一行,可以省略({},return,;)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马