java多线程问题:

[复制链接]
查看11 | 回复3 | 2011-12-6 17:38:27 | 显示全部楼层 |阅读模式
[1] 尽量早点退出synchronized( map){ .... },也就是大括号里面的代码尽量简单点[2] 要从map中取值的时候最好也同步mapsynchronized( map){
Object val=map.get(key);
//做其他处理 } [3] 多线程编程,都得注意变量的同步问题,像key、value都要考虑会不会被其他线程使用 笑纳^...
回复

使用道具 举报

千问 | 2011-12-6 17:38:27 | 显示全部楼层
依然可以同步,同步代码块中是更改map对象了,但是这样的更改对于其他线程来说病并没有改变,要不使用同步也失去意义了。当这个线程结束的时候,map才算是真正的改变了。对于下一个线程在进入同步块时,锁旗标也换成新的map。...
回复

使用道具 举报

千问 | 2011-12-6 17:38:27 | 显示全部楼层
从程序上看的话,没什么问题就是做到只有一个synchronized map对象的线程在访问map对象,需要注意其它非synchronized修改的方法要修改map的话也是可以的。注意一下此处就可以了。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行