经过我认真验证,证实在多线程模式下 String.format有严重问题,原因未完全明确,我猜想有2可能:
1、使用StringBuilder来实现,该类非线程安全
2、可能使用了全局数据区,但没加锁定该数据区就读写 private static class MyReader extends Thread {
@Override
public synchronized void run() {
try {
while (true) {
try {
rw.readLock().lock();
rn++;
sleep(200); String.format("test"); //出现问题
} finally {
rn--;
rw.readLock().unlock();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}来自: http://blog.csdn.net/DancingCalf
1、使用StringBuilder来实现,该类非线程安全
2、可能使用了全局数据区,但没加锁定该数据区就读写 private static class MyReader extends Thread {
@Override
public synchronized void run() {
try {
while (true) {
try {
rw.readLock().lock();
rn++;
sleep(200); String.format("test"); //出现问题
} finally {
rn--;
rw.readLock().unlock();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}来自: http://blog.csdn.net/DancingCalf
解决方案 »
- 一个小问题、新手求帮助
- jsp 纵向和横向都只能选择一个
- 打包,在线等!!
- 有关 DataInputStream 和 DataOutputStream 的 问题 ,报出 EOFException 异常
- 我的socke流为什么不能传到对方(基于c/s的简易聊天程序)?
- 通过程序如何向记事本里写文字呀?
- java连接数据库问题?(附代码)
- 新人写一个平方小程序的时候遇到问题 求解
- 在JBuilder7中制作的exe问题
- <thinking in java>第二章习题(我是个新手,学习<thinking in java>第二章中有2个问题不太清楚,请大家赐教)
- 求教
- 有关system.in.read()的问题
把你完整的代码贴出来看看.