求高手点拨一个Java代码的Synchronized关键字的用法正确性..
高手,您好:
我在写一个IM系统,下面是我的部分代码:
求高手点拨:
我的上述代码的第66行代码的“对象锁”,用的对不对...?
弟我想在C端,达到:
让C端的诸多功能,在面向C端的Socket对象so3,进行:
“协调诸多功能中的写出方法同步”的“排队向so3对象进行”“数据写入”的功能操作...
请问高手,为什么在我用了这个结构的代码实施之后,出现了:
整个项目中,有:
每次运行,都会在上述的第66行的代码位置,报出“
空指针”的异常...?
希望高手点拨我两个问题:
1.我用的对象锁,是否能够达到预期的效果在没有前面的Socket对象的“创建连接问题”出现的话..
应该能够达到我的预期目标:
“协调每一个写出方法同步”的“排队写出数据”的功能,的实现吧.
2.我用的这个代码实施方法,如果在上述第一个需求能够达到的基础上,为什么会有:
报出“空指针”的错误的问题...?
除了Socket对象的创建连接问题之外,还有什么问题可能导致这个异常的出现...?
谢谢高手!!
一百分奉上!!
一位日日夜夜向着理想奔跑的筑梦者
2013年11月13日下午18点15分
------解决方案--------------------so3 是什么对象?你这是server端么?so3是接收到的cli发来的socket对象么?
对象命名完全没有规律看不懂。
我的上述代码的第66行代码的“对象锁”,用的对不对...?
你这里用锁的目的是什么?
“协调诸多功能中的写出方法同步”的“排队向so3对象进行”“数据写入”的功能操作...
你的思路是什么?多个线程向同一个socket写响应么?
------解决方案--------------------你用的是对的,但是那两个sync{}block可以合为一个。
------解决方案--------------------
你的已经用synchronize同步了。就可以实现