线程安全问题?

trycome 2013-11-21 04:08:54
public static StringBuilder getFullMsg(byte buffer[], int len, InputStream is)
throws Exception
{
StringBuilder msg = new StringBuilder();
int i = 0;
for(i = is.read(buffer); i > -1; i = is.read(buffer))
{
String str = new String(buffer, 0, i);
msg.append(str);
if(msg.toString().getBytes().length == len)
break;
buffer = new byte[len - i];
}

return msg;
}
这个静态方法在多线程中调用会产生线程安全问题吗?
...全文
473 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010338099 2013-11-24
  • 打赏
  • 举报
回复
局部变量用StringBuilder就可以了,不需要同步,比StringBuffer性能要高
  • 打赏
  • 举报
回复
没有静态成员 nice
ufofind 2013-11-21
  • 打赏
  • 举报
回复
方法体只是代码段程序执行上没有什么问题 1、byte[] 不能共用;//如要共用要考滤传入进来的的参数 是否为satic...,或单例的情况 2、InputStream 不能共用;//同上 返回的StringBuilder不能共用。//每次call都进行了重新new肯定不能共用了。
MiceRice 2013-11-21
  • 打赏
  • 举报
回复
函数自身没啥问题,毕竟你的msg是个局部变量,不过并发的话仍然存在使用上的风险: 1、byte[] 不能共用; 2、InputStream 不能共用; 3、返回的StringBuilder不能共用。

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧