能不能实现这样一个功能:把一个对象加入到Hash表或其他的集合类中,当有多个线程从集合类中取出对象后,这些线程对 对象的写操作自动被串行化(非并发)? 能不能实现这样一个功能:把一个对象加入到Hash表或其他的集合类中,当有多个线程从集合类中取出对象后,这些线程对 对象的写操作自动被串行化(非并发)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加一个标志位.当有线程操作时,先检查该标志位只有当为false的时候才能操作,并把标志位置为true.完成后置为false. 不是序列化吧...是同步synchronized关键字可以同步方法,对象,或代码段 可以利用读写锁。不知道JDK1.6提供的ConcurrentHashMap有没有类似的机制。 class test {private Object obj; public void test1() { //doSomething ************** synchronized(this){ //************* //锁住当前对象,只能由获得锁的线程访问,其他线程等待 //doSomething } } public synchronized void test2() { //************* //锁住这个方法,只能由获得锁的线程访问,其他线程等待 //doSomething } public void test3() { //doSomething ************** synchronized(obj) { //************* //锁住这个obj对象的访问,只能由获得锁的线程访问,其他线程等待 //doSomething } }} 比如说一个对象。 XXobj=new XXClass 这个XXClass是别人写的,我控制不了他,所以无法让这个类生成的对象都有同步控制。 但是我想在多线程中使用这个类生成的对象,所以我恐惧。 然后,出现了一个对象的某个方法。 XXobj=ferly.YY(XXobj) 经过这样一个操作之后,任何线程调用XXobj的写属性,都自动被同步。 我现在需要的就是这样一个奇迹对象(ferly)。 我说明白了么? JAVA垃圾回收在内存不够时候才运行吗 弹出窗口问题(拜托个位高人了,急!!!) 关于下拉框选择传值的问题。具体代码请看下(摘抄别的的代码) (50分)关于timer类的使用,如何在以下API代码中加入定期执行功能? 请问这里如何设置配置文件存放的路径? 如何获取session中的List呢? 日期时间的解析问题 繁简转换问题,请大家多多帮忙! applet中,可以有多个CLASS吗?其中一个是继承于APPLET,其他的被他所使用.在HTML中应该怎么写?是不是所有的CLASS都要写上去? 求助 一个小问题,HELP!!HELP!!HELP!! 事件加到构造函数进去,科学吗??
是同步
synchronized关键字
可以同步方法,对象,或代码段
class test {
private Object obj; public void test1() {
//doSomething ************** synchronized(this){
//*************
//锁住当前对象,只能由获得锁的线程访问,其他线程等待
//doSomething
} } public synchronized void test2() {
//*************
//锁住这个方法,只能由获得锁的线程访问,其他线程等待
//doSomething
} public void test3() {
//doSomething ************** synchronized(obj) {
//*************
//锁住这个obj对象的访问,只能由获得锁的线程访问,其他线程等待
//doSomething
}
}
}
XXobj=new XXClass
这个XXClass是别人写的,我控制不了他,所以无法让这个类生成的对象都有同步控制。
但是我想在多线程中使用这个类生成的对象,所以我恐惧。
然后,出现了一个对象的某个方法。
XXobj=ferly.YY(XXobj)
经过这样一个操作之后,任何线程调用XXobj的写属性,都自动被同步。 我现在需要的就是这样一个奇迹对象(ferly)。 我说明白了么?