日期:2014-05-20  浏览次数:20790 次

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

------解决方案--------------------
so3 是什么对象?你这是server端么?so3是接收到的cli发来的socket对象么?
对象命名完全没有规律看不懂。

我的上述代码的第66行代码的“对象锁”,用的对不对...?
你这里用锁的目的是什么?

“协调诸多功能中的写出方法同步”的“排队向so3对象进行”“数据写入”的功能操作...
你的思路是什么?多个线程向同一个socket写响应么?
------解决方案--------------------
你用的是对的,但是那两个sync{}block可以合为一个。
------解决方案--------------------
引用:
引用
so3 是什么对象?你这是server端么?so3是接收到的cli发来的socket对象么?
对象命名完全没有规律看不懂。

我的上述代码的第66行代码的“对象锁”,用的对不对...?
你这里用锁的目的是什么?

“协调诸多功能中的写出方法同步”的“排队向so3对象进行”“数据写入”的功能操作...
你的思路是什么?多个线程向同一个socket写响应么?

须等待哥,弟我对我的问题做一下补充:
1.这是我的Client端.
2.我用锁的目的是:
让我的C端的诸多可能为用户选择的“功能”,面向一个Socket水管,进行“协调动作”:
一个功能一个功能地进行我的Socket水管的使用,让我的数据,能够有条不紊地向S端进行发出.
希望能够得到诸位高手的再次点拨:
    我的上面的代码,是否能够达到我的目的:
    “协调每一个写出方法同步”的“排队写出数据”,也就是:“我的C端的多个线程在同一个时间点上调用write()方法向一个Socket水管中写数据的时候,能够让我的每一个线程,有序,依次执行上面的“写入数据”的操作...?


你的已经用synchronize同步了。就可以实现