保证stringBulider线程安全?

今天遇到了一个面试官提问,问如何保证stringBulider的线程安全,我回答的是加锁。面试官给予否定,请问各位牛人,应该怎么做?
全部评论
我的答案是,使用stringbuffer……。或者每个线程持有一个stringbuilder。这种东西完全可以不共享的
10 回复 分享
发布于 2023-02-18 20:13 云南
加锁不好,影响性能。不如每个线程搞一个对象,空间换时间
4 回复 分享
发布于 2023-02-18 20:13 云南
定义为局部变量
2 回复 分享
发布于 2023-03-02 08:56 上海
好奇什么场景下需要多线程操作字符串?多线程写入的字符串能看?
点赞 回复 分享
发布于 2023-04-19 15:30 湖南
最简单的肯定是线程封闭吧,然后是加锁呗
点赞 回复 分享
发布于 2023-04-16 23:05 上海

相关推荐

01-04 08:30
门头沟学院 Java
1、实习介绍2、synchronized的底层原理?3、字节码层面上相关的指令有了解吗?4、synchronized锁升级和优化。5、偏向锁是怎么实现的?轻量级锁、重量级锁在操作系统层面怎么实现的,有了解过吗?6、介绍一下volatie的实现原理,说一说JMM。7、还有一个作用。(防止指令重排序)8、从操作系统的层面取理解Java的线程有哪些部分?或者有哪些组成元素?9、线程进行上下文切换的时候都需要哪些东西来保证线程能够恢复到原来的待运行状态?10、说一下Hashmap和concurrentHashMap,介绍1.8之后就行。concurrentHashMap是怎么控制并发的?11、设计模式,说一下单例模式12、说一下工厂模式常用的地方,13、说一下7层网络模型14、输入一个网址,整个过程有哪些步骤。TCP连接一定会断开吗?15、http1.1和2.0有啥主要的区别?16、jvm运行时的数据区域?17、堆内存分配策略?18、创建一个对象的步骤(业务自定义的类对象)。(类加载、内存分配和初始化(堆)、设置对象头、执行实例初始化代码、返回对象引用)19、类加载机制?20、垃圾回收算法?21、相关的垃圾回收器?22、说一下索引结构?索引类型?23、主键索引会需要回表查询吗?24、最左前缀原则?索引失效场景?25、介绍一下spring中bean加载流程?26、介绍一下threadlocal的原理?怎么处理hash冲突的?27、redis常用的数据结构?28、zset底层实现?插入一个元素的流程?查找时间复杂度?最坏?29、我看你解决了一些缓存问题,你们缓存的主要是什么东西?怎么解决缓存雪崩?30、你分布式锁锁的是什么东西?怎么实现的?
查看30道真题和解析
点赞 评论 收藏
分享
评论
7
57
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务