单线程的synchronized方法或者变量
如题。单线程的synchronized方法或者变量,代码段有什么特殊的用途
我知道多线程的synchronized用法,但是不知道单线程使用synchronized有什么用。
多谢各位大侠的回答。
------解决方案--------------------
单线程就别加synchronized了,加了这个的话每次都会进行加锁,影响程序的性能,比如Java类库中的Vector和Stack,因为在单线程使用环境下也使用synchronized,所以相当影响程序性能,后来就改了类库,有了专门用于多线程环境的容器和单线程环境的容器,还有StringBuffer,因为以前没有StringBuilder,导致StringBuffer过度使用,程序慢的要死,不过自从有了StringBuilder(去除了所有的synchronized同步代码),我们就可以在单线程环境下使用StringBuilder啦。
不过话说现在有些JVM很智能,能检测到程序是否工作在多线程下,假如是单线程,会优化掉synchronized代码。
还有synchronized少用点,尽量用用JavaSE5中的同步工具,既简单并发性又好还不容易出错。
O了,打了这么多