为什么只选b不选a
来源:互联网 发布:vba制作代码软件 编辑:程序博客网 时间:2024/05/01 19:31
问题是图片。。。。。
以下我自己的看法,各位大虾指点:
首先,可以确定这道题考的是线程安全问题,解决线程安全有多个方法,
其中包括: 1.+synchronized
2.+锁
3.应用线程安全的API 等等.
其次,关于StringBuilder和StringBuffer 的区别
最根本的不同在于: StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃.
StringBuffer要用在全局变量中
对于答案A来说,虽然LOG方法加上synchronized后该方法确保了多线程问题,但无法保证
LOGGER的数据安全,因为StringBuilder是不安全的.
所以 答案是B .
=======================
LZ想一下,如果想你说的将Log方法变为synchronized的,这只是对该方法保证了同步,在一个线程执行该方法的时候,另一个线程是不能调用该方法的,但是当该线程正向StringBiulder类型的logger里append的时候,还没append完,该线程时间片用完,其他的线程可以访问,给它读写一些东西,这样你的程序不就冲突了吗。所以A不对
---------------------------
看StringBuffer的源码就知道 用了大量的synchronized 其他和StringBuilder差不多
- 为什么只选b不选a
- 为什么A *a=new B不直接写成B b,或者B *p呢?
- 浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人
- 拷贝A下面的B目录到C下面,只拷贝目标结构,不拷贝文件
- 为什么不选LINUX?
- 为什么大家只看文章不回复?
- 【为什么只买东西不买南北?】
- 已知一个非纯集合B,构造一个纯集合A,使集合A只含有B中值各不相同的成员(数据结构)
- Python为什么不需要swap(a, b)
- 为什么我总是只下东西不写东西呢?
- 为什么百度只收录首页不收录内页?
- c++ - 为什么头文件里只申明不实现
- 为什么百度地图只显示网格不显示内容
- p(a|b)=p(ab)/p(b)为什么?
- sublime3 Ctrl + B 只build 不运行的解决方案之一
- 交换a,b, 不使用中间变量
- 交换a,b, 不使用中间变量
- 不使用 ’+’, 实现 ’A+B’ 的方法
- java面试基础题
- 十分
- 20091029
- 常用的WebServices
- A real and useful way to get/prase XML file from a site
- 为什么只选b不选a
- C#操作ini文件相关操作方法类
- 如何用VC++60编写查看二进制文件程序
- jython安装和使用
- 分层
- 使用CPU时间戳进行高精度计时
- EJB
- Hibernate 学习第一天
- mvc