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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


今天我们学习了JDK1.8的新特性,lambda表达式,等待唤醒机制和线程池,请根据自己的理解回答下面问题:
1.等待唤醒机制存在的意义是什么?
2.调用wait()方法和notify()方法,需要注意什么?
3.使用线程池来操作线程有什么好处?
4.传统的面向对象编码有什么弊端?
5.什么情况下可以使用lambda表达式来替换面向对象编码?
6.什么情况下lambda表达式可以简写?

53 个回复

倒序浏览
1.等待唤醒机制存在的意义是什么?实现线程的通信,并优化线程的使用机制

2.调用wait()方法和notify()方法,需要注意什么?
必须是同一个锁对象才能调用wait()和notify方法

3.使用线程池来操作线程有什么好处?
一、 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
二、提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
三、提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下。

4.传统的面向对象编码有什么弊端?
过分强调通过对象的形式来做事情,在这过程中,会产生过冗余的代码
5.什么情况下可以使用lambda表达式来替换面向对象编码?
一、使用Lambda必须具有函数式接口,即接口有且只有一个抽象方法的接口
二、使用Lambda必须具有上下文推断,也就是方法的参数或局部变量为Lambda对应的接口类型

6.什么情况下lambda表达式可以简写?
一、小括号内的参数类型可省略
二、小括号内有且只有一个参数,小括号可以省略
三、大括号内有且仅有一个语句,可以同时省略大括号、return、分号

杨式贤




回复 使用道具 举报
本帖最后由 黄艺纯 于 2018-8-21 10:18 编辑

1.等待唤醒机制存在的意义是什么?
解决在线程通信过程中,产生的线程浪费问题

2.调用wait()方法和notify()方法,需要注意什么?
1.锁对象唯一;
2.在同步代码块中。


3.使用线程池来操作线程有什么好处?
1. 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
3. 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。

4.传统的面向对象编码有什么弊端?
代码冗余,复杂,死板

5.什么情况下可以使用lambda表达式来替换面向对象编码?
1.可以通过上下文推导;
2.接口,有且仅有一个抽象方法。

6.什么情况下lambda表达式可以简写?
1.小括号内参数的类型可以省略;
2.如果小括号内有且仅有一个参,则小括号可以省略;
3.如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。


回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?
            让线程能够有规律的执行任务
2.调用wait()方法和notify()方法,需要注意什么?
                (1)必须用锁对象调用
                (2)必须写在同步代码块内
3.使用线程池来操作线程有什么好处?
               (1)不用频繁的创建销毁线程
               (2)无需创建线程对象,直接从线程池中调用线程对象
4.传统的面向对象编码有什么弊端?
            想要实现一个结果,必须创建类,调用类的方法来实现,格式太繁琐,注重过程

5.什么情况下可以使用lambda表达式来替换面向对象编码?
         一个接口有且仅有一个抽象方法
6.什么情况下lambda表达式可以简写?
                1. 小括号内参数的类型可以省略;
                2. 如果小括号内有且仅有一个参,则小括号可以省略;
                3. 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号




回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?
解决线程通信之间,产生的资源浪费问题


2.调用wait()方法和notify()方法,需要注意什么?
调用wait()方法与notify()方法的对象必须是同一个锁对象


3.使用线程池来操作线程有什么好处?
线程池中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源

4.传统的面向对象编码有什么弊端?
面向对象过分强调“必须通过对象的形式来做事情”,代码过于冗长,有时为了使用某个方法,不得不创建对象/创建接口,并且还要重写方法,使得为了得到某个功能,要去写好多多余的代码.


5.什么情况下可以使用lambda表达式来替换面向对象编码?
1. 使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。
2. 使用Lambda必须具有上下文推断。




6.什么情况下lambda表达式可以简写?
1. 小括号内参数的类型可以省略;
2. 如果小括号内有且仅有一个参,则小括号可以省略;
3. 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。



回复 使用道具 举报
1.等待唤醒机制可以提高资源利用率。
2.多线程同步需要用锁对象调用wait()和notify()方法不然会报错。
3用线程池来操作线程可以减少线程对象创建销毁繁琐的步骤减少资源消耗提高响应速度和线程可管理性
4传统面向对象在创建对象传递参数时会产生许多冗余代码。
5使用lambda必须有接口,且要求接口中有且仅有一个抽象方法。
使用lamdba时方法的参数或局部变量必须为lambda对应的接口类型。
6可以省略小括号内的参数类型。
如果小括号内只有一个参数可以省略小括号。
如果大括号内有且仅有一个语句,可以省略大括号和返回值及语句分号。
============================================== 周楠
回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?
为了避免线程之间互相抢夺资源而造成数据不同步,而多线程之间的协调通信,可以减少资源浪费
2.调用wait()方法和notify()方法,需要注意什么?
用使用同一个同步锁对象
3.使用线程池来操作线程有什么好处?
提高线程运行效率,当有任务时,线程池中自然会去运行,而不用再次写新的线程
4.传统的面向对象编码有什么弊端?
传统方法比较复杂
5.什么情况下可以使用lambda表达式来替换面向对象编码?
接口只有且仅有一个抽象方法
6.什么情况下lambda表达式可以简写?
代码语句只有一句
可推导的都可省略
回复 使用道具 举报
天我们学习了JDK1.8的新特性,lambda表达式,等待唤醒机制和线程池,请根据自己的理解回答下面问题:
1.等待唤醒机制存在的意义是什么?
可以让某些特定的线程等待,其他线程运行完之后运行,或者不在运行
2.调用wait()方法和notify()方法,需要注意什么?
要注意调用的对象地址值必须一样
3.使用线程池来操作线程有什么好处?
格式简化,效率更高
4.传统的面向对象编码有什么弊端?
多余代码多
5.什么情况下可以使用lambda表达式来替换面向对象编码?
对象是接口并且只有一个抽象方法的情况下
6.什么情况下lambda表达式可以简写?
参数类型可以简写,
如果参数只有一个小括号也可以省略,
大括号内的内容如果只有一段话(即一个封号)那么大括号,封号,返回语句(不管有没有返回值)都可以省略。
不过要注意大括号,封号,返回语句要省略就要一起省略不能省略单个
回复 使用道具 举报
=====余金龙=====
今天我们学习了JDK1.8的新特性,lambda表达式,等待唤醒机制和线程池,请根据自己的理解回答下面问题:
1.等待唤醒机制存在的意义是什么?这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争(race),比如去争夺锁,但这并不是
故事的全部,线程间也会有协作机制。就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争,但更多时
候你们更多是一起合作以完成某些任务。
就是在一个线程进行了规定操作后,就进入等待状态(wait()), 等待其他线程执行完他们的指定代码过后 再将
其唤醒(notify());在有多个线程进行等待时, 如果需要,可以使用 notifyAll()来唤醒所有的等待线程。
wait/notify 就是线程间的一种协作机制。
2.调用wait()方法和notify()方法,需要注意什么?
1. wait方法与notify方法必须要由同一个锁对象调用。因为:对应的锁对象可以通过notify唤醒使用同一个锁对
象调用的wait方法后的线程。
2. wait方法与notify方法是属于Object类的方法的。因为:锁对象可以是任意对象,而任意对象的所属类都是继
承了Object类的。
3. wait方法与notify方法必须要在同步代码块或者是同步函数中使用。因为:必须要通过锁对象调用这2个方
法。
3.使用线程池来操作线程有什么好处?
1. 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
3. 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内
存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。
4.传统的面向对象编码有什么弊端?
答:码比较冗余
5.什么情况下可以使用lambda表达式来替换面向对象编码?
1 只有一个接口
2接口中有且只有一个抽象方法
3具有上下文推导,可推导可省略
6.什么情况下lambda表达式可以简写?

1. 小括号内参数的类型可以省略;
2. 如果小括号内有且仅有一个参,则小括号可以省略;
3. 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。


回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?
    提高资源的利用率,避免浪费
2.调用wait()方法和notify()方法,需要注意什么?  
  • wait方法与notify方法必须要由同一个锁对象调用。因为:对应的锁对象可以通过notify唤醒使用同一个锁对象调用的wait方法后的线程。
  • wait方法与notify方法是属于Object类的方法的。因为:锁对象可以是任意对象,而任意对象的所属类都是继承了Object类的。
  • wait方法与notify方法必须要在同步代码块或者是同步函数中使用。因为:必须要通过锁对象调用这2个方法。

3.使用线程池来操作线程有什么好处?
  • 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
  • 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
  • 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。

4.传统的面向对象编码有什么弊端?
   当我们仅仅需要调用一个类中的一个方法时,需要创建对象,或者用匿名内部类重写方法,并且格式不能有差错,者大大降低了我们的编码效率
5.什么情况下可以使用lambda表达式来替换面向对象编码?
   当接口中只有一个抽象方法,使用Lambda必须具有上下文推到
6.什么情况下lambda表达式可以简写?
  当地只有一个参数是,小括号可以省略
  参数列表的类型可以省略,
  当方体中只有一条语句时可以省略 大括号,结束分号,和return关键字

yefan




回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?      提高资源利用率,避免资源浪费;
2.调用wait()方法和notify()方法,需要注意什么?
    1、wait方法与notify方法必须要由同一个锁对象调用。
    2、wait方法与notify方法是属于Object类的方法的。
    3、wait方法与notify方法必须要在同步代码块或者是同步函数中使用。
3.使用线程池来操作线程有什么好处?
   1、降低资源消耗;
   2、提高响应速度;
   3、提高线程的可管理性;
4.传统的面向对象编码有什么弊端?
   代码冗余;
5.什么情况下可以使用lambda表达式来替换面向对象编码?
  1、接口有且仅有一个抽象方法;
   2、上下文可推导;
6.什么情况下lambda表达式可以简写?

   1、()内的参数类型可以省略;
   2、如果()内仅有一个参数,那么()可以省略;
   3、如果{}内仅有一个语句,那么{}、;、return可以省略(需一起省略);
回复 使用道具 举报
本帖最后由 张煜兴 于 2018-8-20 21:23 编辑

1.等待唤醒机制存在的意义是什么?
多线程操作同一个资源时,执行顺序可以按照自定义的规则进行,从而避免同步不安全

2.调用wait()方法和notify()方法,需要注意什么?
(1)调用者必须是同一个锁对象
(2)必须在同步代码块中

3.使用线程池来操作线程有什么好处?
(1)可以不用重复创建销毁线程,进而结束资源
(2)加速,一个线程在进行的同时,其他线程也可以进行,不过还是抢占式的
(3)可以定义线程个数,便于管理

4.传统的面向对象编码有什么弊端?
代码繁多,需要创建对象,再调用对象方法,甚至重写方法

5.什么情况下可以使用lambda表达式来替换面向对象编码?
(1)有且只有一个抽象方法的接口的使用
(2)可以有上下文推导出,方法参数或是局部变量是该接口的实现类

6.什么情况下lambda表达式可以简写?
(1)参数类型可以省略
(2)参数有且只有一个时,可以省略()
(3)不够是否有返回值,{ }、return、;,三者只能一起省略


回复 使用道具 举报
郭林源

1.等待唤醒机制存在的意义是什么?-->解决在线程通信中的资源浪费的问题,使资源得到合理利用

2.调用wait()方法和notify()方法,需要注意什么?-->1:二者使用的必须是同一个同步锁   2:一个线程使用wait方法后,必须等待另一个线程使用notify唤醒它
3:如果唤醒的是多个线程,那最先等待的线程优先唤醒

3.使用线程池来操作线程有什么好处?-->避免了频繁创建和销毁线程,浪费系统资源,而且创建的线程可重复使用

4.传统的面向对象编码有什么弊端?-->需要为了实现简单的操作而不得不创建多个对象,并调用方法区实现

5.什么情况下可以使用lambda表达式来替换面向对象编码?-->1:有且仅有一个抽象方法的接口  2:变量及参数信息可根据上下文推导得到的

6.什么情况下lambda表达式可以简写?-->小括号的参数类型可省略,
如果小括号只有一个参数,那小括号也可以省略;如果大括号有且仅有一句语句,那不管有没有return,都可以省略return和大括号,和分号
回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?
提高程序运行效率,同时也能使程序线程间有序执行
2.调用wait()方法和notify()方法,需要注意什么?
同一个锁对象,且处于同步状态
3.使用线程池来操作线程有什么好处?
1.避免资源浪费,减少线程新建和销毁。2.提高程序运行速度。3.方便线程管理
4.传统的面向对象编码有什么弊端?
冗余
5.什么情况下可以使用lambda表达式来替换面向对象编码?
有接口,且接口中有且仅有一个抽象方法。必须有上下文推断
6.什么情况下lambda表达式可以简写?
参数列表:
1.空参不可省略。2.一个参数可以省略参数及()3.多个参数可以省略数据类型。
{ }:
有且仅有一条代码的情况下,return  { }  ;都可省略,但必须三个一起省略。
回复 使用道具 举报
本帖最后由 丶黑白 于 2018-8-20 21:33 编辑

余志斌
1.等待唤醒机制存在的意义是什么?
    数据通讯,使线程运行更符合我们需求。
2.调用wait()方法和notify()方法,需要注意什么?
        位置需要在while(true)里面
        需要同一个锁对象且需要锁对象调用
3.使用线程池来操作线程有什么好处?
   1.节省新建时间,减少响应时间
    2.节约资源。
  3. 提高线程的可管理性
4.传统的面向对象编码有什么弊端?
       有许多冗余代码(如新建对象等)
5.什么情况下可以使用lambda表达式来替换面向对象编码?
  函数式接口,即抽象方法只有一个(可以有默认方法和静态方法)可以使用。
6.什么情况下lambda表达式可以简写?
    1. 参数列表数据类型可省略,如果参数只有一个,小括号可省略
   2. 方法体只有一句,可省略return,与此同时大括号和;可省略
回复 使用道具 举报 1 0
1。用来解决线程通信问题.
2.要注意调用的对象地址值必须一样
3.1.线程池里面的线程可以重复使用,减少了频繁创建,销毁线程所浪费的资源.2.提高响应速度,3.提升系统的承载能力
4.过于繁琐 代码冗余
5.1.可以上下推导 2.继承接口且接口仅有一个抽象方法.
6.1、()内的参数类型可以省略;
   2、如果()内仅有一个参数,那么()可以省略;
   3、如果{}内仅有一个语句,那么{}、;、return可以省略(需一起省略);
回复 使用道具 举报
1。用来解决线程通信问题.
2.要注意调用的对象地址值必须一样
3.1.线程池里面的线程可以重复使用,减少了频繁创建,销毁线程所浪费的资源.2.提高响应速度,3.提升系统的承载能力
4.过于繁琐 代码冗余
5.1.可以上下推导 2.继承接口且接口仅有一个抽象方法.
6.1、()内的参数类型可以省略;
   2、如果()内仅有一个参数,那么()可以省略;
   3、如果{}内仅有一个语句,那么{}、;、return可以省略(需一起省略);
孙享
回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?
可以让多个线程互相协作
2.调用wait()方法和notify()方法,需要注意什么?
必须是同一个锁对象,必须在同步代码块或者同步函数中使用
3.使用线程池来操作线程有什么好处?
降低资源消耗,提高响应速度,提高线程的可管理性,可以根据系统的承受能力,调整线程数量
4.传统的面向对象编码有什么弊端?
传统面向对象在创建对象传递参数时会产生许多冗余代码。
5.什么情况下可以使用lambda表达式来替换面向对象编码?
必须具有接口,且接口中有且仅有一个抽象方法
6.什么情况下lambda表达式可以简写?
小括号内参数的类型可以省略,;如果小括号,有且仅有一个参数,那小括号可以省略;如果大括号里面只有一条语句,那大括号return分号都可以省略
回复 使用道具 举报

今天我们学习了JDK1.8的新特性,lambda表达式,等待唤醒机制和线程池,请根据自己的理解回答下面问题:
1.等待唤醒机制存在的意义是什么?
解决多线程通信过程中资源浪费的问题,
2.调用wait()方法和notify()方法,需要注意什么?
调用对象必须为同一对象即地址值需要相同。
3.使用线程池来操作线程有什么好处?
不需要重复新创和销毁线程,降低资源消耗;提高响应速度;提高线程的可管理性;
4.传统的面向对象编码有什么弊端?
格式比较复杂,代码冗余过多
5.什么情况下可以使用lambda表达式来替换面向对象编码?
必须是借口且有仅有一个抽象方法
6.什么情况下lambda表达式可以简写?
1.        小括号内参数的类型可以省略;
2.        如果小括号内有且仅有一个参,则小括号可以省略;
3.        如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。
回复 使用道具 举报
1。用来解决线程通信问题.
2.要注意调用的对象地址值必须一样
3.1.线程池里面的线程可以重复使用,减少了频繁创建,销毁线程所浪费的资源.2.提高响应速度,3.提升系统的承载能力
4.过于繁琐 代码冗余
5.1.可以上下推导 2.继承接口且接口仅有一个抽象方法.
6.1、()内的参数类型可以省略;
   2、如果()内仅有一个参数,那么()可以省略;
   3、如果{}内仅有一个语句,那么{}、;、return可以省略(需一起省略);
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马