当前位置: 首页 > 图灵资讯 > 技术篇> 多线程程序评量标准自测题

多线程程序评量标准自测题

来源:图灵教育
时间:2023-03-24 10:12:41

对于一个多线程程序写得怎么样,java程序员们的评价不仅停留在好坏之间,而且有更专业、更详细的评价标准。在前面的文章中,我学习了多线程序评价标准,以测试每个人的学习结果,这里已经整理出来了多线程序评价标准自测问题,你可以测试你是否真的理解以前学习的评价标准。

第一,评估以下叙述内容是否合适?

1、synchronized总是添加到方法中,是不是万无一失?

答:安全:加上synchronized方法不会降低安全性,但安全性可能不会提高。例如,如果保护字段应设置为public,无论方法中添加多少synchronized,该程序仍然缺乏安全性。

生存:一概加一般来说,synchronized的生存率会下降。例如,很容易导致死锁(dead lock)的发生。

性能:不必要,但加上如果synchronized,性能(如throughput)会下降。这是因为一般来说, synchronized 与非synchronized方法相比,调用该方法需要更多的时间

2、synchronized方法不是变成了无限循环吗?这样的程序不好吗?

答:安全:安全:即使synchronized方法成为无限循环,只要循环中的处理正确,就不会危及其安全性。

生存性:如果synchronized方法成为一个无限循环,其他想要执行synchronized方法的线程将被锁定,导致生存率下降。

性能:如果生存率下降,性能(如throughput)也会下降。

3、即使启动100,也会因为程序错误而陷入无限循环的线程 第一,因为线程只是不断执行,应该没关系。

答:安全:即使有很多线程只是循环,也不会导致安全性下降。

生存:如果只有大量的循环线程,就不会导致生存下降但是,如果线程中使用的内存超过了系统所能提供的内存,一些重要的线程可能无法启动,因此生存率会下降。

性能:执行线程时会使用内存,然后消耗CPU时间 resource, 因此,性能会下降。

4、这个服务器一次只能连接一个客户端,请更好地调整此服务器。

答:性能:从这个问题来看,这似乎意味着一个好的服务器可以同时连接几个客户端。所以问题是服务器“负荷量”。

5、这个搜索程序已经够糟糕了。一旦启动,必须等到所有搜索完成后才能取消。

答:性能:这个问题与程序有关“响应能力”有关。

6、这样的话,类A和B必须注意线程共享和互斥的影响,这不是很好吗?

答:重复使用:问题在于类别“重复使用性” 提问者可能担心程序代码必须考虑类A和类B之间的线程共享和相互排斥。只要在某一方的类中关闭要启动的线程的相关程序代码,就可以减少类的影响,提高该部件的可重复使用性。

二、若线程数量变成2倍,throughput会变成2倍吗?

答:一般来说,它不会变成两倍 可能的原因如下3点:

理由1:有时由于硬件的限制,不一定是两倍的线程可以同时执行(并行操作)。此外,在这种情况下,线程切换的overhead也很容易发生。

理由2:处理的工作可能无法平均分配到所有线程。

理由3:即使没有硬件控制,两倍的线程同时执行,也会发生线程间共享互斥的overhead,这也是原因之一。

以上是本文整理的。多线程序评价标准自测题,通过以上题目可以知道自己的掌握程度,相信大家java零基础在学习了评价标准后,朋友们可以完成上述标准多线程序评价标准自测问题的。