多线程并发求教
码之魂 2012-11-12 05:09:15 例:
A转账给B,
C转账给B.
........
入库操作.
1.需要效率,不能把没有冲突的人给锁住,比如:e转账给f,对于A->b做完后才能C->B.
2.暂时想法是把正在进行的人员放入到一个静态的map中(成对放入,比如A,B),
每次先检查要处理的人是否有其中一个正在处理,如果正在处理,那么循环等.如果正在处理的人,处理完了,那么就从map中移除出去,后来的C->B就放入....依次循环..
但如果整的并发了那么放入map的时候可能出现并发,但我不能去锁方法,锁方法就违背了第一个.
其实也不知放的时候,判断map是否存在该人,放入时,删除时,都存在并发的问题.
谁有并发的处理经验?求教.
以这个例子再次说明下:
A->B
C->B
E->F
期望,如果三对同时做的话,那么a,b和e,f先处理,c,b等待.
但愿大家明白我意思.