问题描述
- 同步代码块的问题。。。。。
-
数据库的几张表常用表的数据,我想写到几个静态变量中。
然后提供若干个get方法,同时还有一个set方法重置所有的静态变量。
请问如何能够在set重置方法没完成以前,让get方法的线程等待?
同时几个get方法又不能有相互影响。
就是set没完成,所有的get需要等待,但是不同的get之间没完成不需要等待。
来人啊。。。
解决方案
http://my.oschina.net/tinglanrmb32/blog/339661
解决方案二:
http://blog.csdn.net/5iasp/article/details/7308584
解决方案三:
代码块同步:
防止多个线程无序访问共享资源,将对共享资源进行操作的关键代码放入一个同步代码块中。
syschronized(Object){}
1)当一个线程想进入该对象的关键代码,先获得该对象的锁。若在一个类的代码块里object是this,则该object上锁了
2)一个线程访问object的同步代码,其他线程不可以访问该object其他的syschronized的同步代码块(被暂时阻......
答案就在这里:代码块同步
解决方案四:
用一个flag变量来判断是否已经set完?
解决方案五:
如果是用的vc++,那么可以使用事件对象进行同步~~~具体的可以网上搜下或者看下《windows高级编程》
解决方案六:
可以添加个锁啊,我在音视频编程都是这样操作,这线程中相当于共享内存,得通过锁的操作!希望能帮到你!
时间: 2024-12-23 04:16:14