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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

官启文
1.等待唤醒机制存在的意义是什么?
多线程操作同一个资源,避免对同一共享变量的争夺,需要通过一定的手段使各个线程能有效的利用资源
2.调用wait()方法和notify()方法,需要注意什么?
要用同一个锁。必须要在同步代码块或者是同步函数中使用
3.使用线程池来操作线程有什么好处?
1.降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
3. 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。
4.传统的面向对象编码有什么弊端?
代码格式比较固定,复杂。
5.什么情况下可以使用lambda表达式来替换面向对象编码?
有且仅有一个抽象方法,可以上下文推导  一定是在 在使用我们 接口中的 抽象方法的地方 代替接口的
6.什么情况下lambda表达式可以简写?
      1,小括号中的参数类型可以省略
      2,小括号中如果是一个参数  括号可以省略
      3,大括号中如果只有一句话 那么 不管有没有 返回值 retun关键字 {} ;都可以省略
回复 使用道具 举报
唐杰


1.等待唤醒机制存在的意义是什么?
等待唤醒进制是为了提高线程间通讯效率,一条线程在工作时另外一条不会浪费内存空间来抢占.


2.调用wait()方法和notify()方法,需要注意什么?
wait()和notify()方法需要通过资源锁对象来调用,两个方法需要写在同步代码块/方法中.


3.使用线程池来操作线程有什么好处?
使用线程有创建,使用和销毁三部,通过线程池可以避免重复创建和销毁的动作.
也可以提升响应效率,任务到达时不用创建线程直接使用.
提高可管理性,根据系统承受能力来调整工作线程数量,避免因为内存占用过多而导致的服务器死机.


4.传统的面向对象编码有什么弊端?
传统的面向对象语法比较复杂,有时为了实现一个单一的功能需要创建一个实现类/匿名内部类.


5.什么情况下可以使用lambda表达式来替换面向对象编码?
需要确保是一个只有一个抽象方法的接口.

6.什么情况下lambda表达式可以简写?
a. 参数列表括号()中的数据类型可以省略.
b.如果代码块只有一行,无论有没有返回值,则可以省略关键字""return",大括号"{}",以及分号";".
c.如果小括号中只有一个参数,小括号可以省略


回复 使用道具 举报
林焕
1.有效的完成多个线程间通信的机制;

2.1) wait方法与notify方法必须要由同一个锁对象调用;
  2)wait方法与notify方法是属于Object类的方法的;
  3)wait方法与notify方法必须要在同步代码块或者是同步函数中使用;

3.线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源;

4.传统的面向对象过于强调"一切事物皆对象",解决问题都可以通过构造对象;这种想法没有错,只不过有时我们解决问题不一定都需要通过创建对象来解决,关心的是做什么而不是怎么做;这种情况下,我们需要的只是方法体中的内容,不想要繁琐的去创建匿名内部类,这样会使代码臃肿;

5.1)有且只有一个抽象方法的接口;
  2)可以上下文推导,方法的参数,变量要对应接口类型;

6.1) 小括号内参数的类型可以省略;
  2)如果小括号内有且仅有一个参,则小括号可以省略;
  3) 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号,return关键字及语句分号;
回复 使用道具 举报

王博

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

提高线程间通信的效率


2.调用wait()方法和notify()方法,需要注意什么?
要在同步机制中,用同一资源锁对象调用


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

提高效率,线程可以重复利用,减少了创建线程和销毁线程所浪费的资源


4.传统的面向对象编码有什么弊端?
传统面向对象中,要是做一件事,就必须通过创建相应的对象,通过对象调用相应的方法或者重写里面的方法
语法比较繁琐,稍不留神就容易写错


5.什么情况下可以使用lambda表达式来替换面向对象编码?
要用到接口时,且接口中只有一个抽象方法,就可以使用lambda表达式
用lambda表达式必须是可通过上下文推导的


6.什么情况下lambda表达式可以简写?
参数类型可以省略
如果参数只有一个,小括号可以省略
如果方法体只有一句,无论是否有返回值,return,大括号,分号,可以省略



回复 使用道具 举报
刘慧梅
1.等待唤醒机制存在的意义是什么?
// 提高线程通信效率
2.调用wait()方法和notify()方法,需要注意什么?
// 如果线程进入等待状态则调用wait()方法,等其他线程任务操作完成后再调用notify()
3.使用线程池来操作线程有什么好处?
// 减少创建和销毁线程次数,可以重复利用,降低资源浪费
// 提高响应线程速度
// 提高线程的可管理性
4.传统的面向对象编码有什么弊端?
// 注重过程和形式
// 代码冗长复杂,每一步都要详细编译,编译过程中容易出现错误
5.什么情况下可以使用lambda表达式来替换面向对象编码?
// 必须有接口类,接口类中有且只有一个抽象方法
// 可以上下文推导
6.什么情况下lambda表达式可以简写?
// 小括号中的参数类型可省略
// 小括号中只有一个参数时,小括号可以省略
// 如果大括号中只有一句执行语句,无论有没有返回值,大括号,return关键字以及语句分号都可以省略

回复 使用道具 举报
1.等待唤醒机制存在的意义是什么?使线程能够相互配合有序的完成任务,解决县城通信问题

2.调用wait()方法和notify()方法,需要注意什么?
需要用在同步代码块里面
调用两个方法需要锁对象来调用
synchronized(锁对象1){
         锁对象1.wait()
}
synchronized(锁对象2){
        锁对象2.notify
}
此时无法唤醒,将锁对象2换成锁对象1 则可以唤醒
notify拥有的锁对象如果与wait不同,则无法唤醒。
两者相互配合需要共享同一把锁。

3.使用线程池来操作线程有什么好处?
1减少了资源的浪费
2提高了反应速度
3提高了线程的管理性

4.传统的面向对象编码有什么弊端?
面向对象更多的是使用对象来做事已到达想要的结果,
在执行最终想要执行的核心代码获得结果前需要传参,创建类,调用方法等大量繁琐步骤。
需要浪费多的时间来敲代码,而且这样会使代码开起来异常的臃肿

5.什么情况下可以使用lambda表达式来替换面向对象编码?
当一个接口有且只有一个抽象类方法时,就可以使用Lambda表达式来替换

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

Lambda括号内的参数类型可以省略不写
当括号内的参数只有一个时,括号可以省略不写
当大括号类只有一句语句时,无论有没有返回值,return 分号 大括号都可以省略不写
回复 使用道具 举报
1.有效的完成多个线程间通信的机制,解决线程之间的通讯问题,避免对同一资源的争夺。

2.1.必须是同一个锁对象即锁对象可以是任意的但必须是统一的,必须在同步代码块或同步方法中使用。

3.降低资源的消耗,提高响应速度,提高线程的可管理性。

4.解决复杂的问题,代码很是繁琐很容易使我们写错。

5.必须是一个接口且必须只有一个抽象方法。

6.小括号中的参数类型可以省略,小括号中如果只有一个参数括号可以省略,大括号中如果只有一句语句那么不管有没有返回值都可以省略大括号和关键字return和语句分号
回复 使用道具 举报
林梅源
1.等待唤醒机制存在的意义是什么?
解决线程通信的问题
2.调用wait()方法和notify()方法,需要注意什么?
调用wait和notify方法的时必须使用同一个锁,必须都在同步代码块中,或者同步函数中使用。
3.使用线程池来操作线程有什么好处?
1、降低资源消耗,减少创建和销毁的次数,线程可以被重复利用,可以执行多任务;
2、增加效率,提高响应速度,当任务到达时,不必等待创建线程就能立即执行;
3、提高线程的可管理性,根据系统的承受能力,调整线程中工作线线程的数目;
4.传统的面向对象编码有什么弊端?
语法过于复杂
5.什么情况下可以使用lambda表达式来替换面向对象编码?
1、一个接口而且接口只有一个抽象方法
2、可以上下文推导,也就是方法的参数和局部变量类型必须为Lambda对应的接口类型,才能使用Lambda作为接口的实例;
6.什么情况下lambda表达式可以简写?
1、小括号里面的参数类型可以省略
2、如果小括号有且只有一个参数,那么括号可以省略
3、如果大括号里面有且只有一个语句,无论是否有返回值,都可以省略大括号,return和封号;
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马