我现在正在开发一个系统。主要是使用Socket异步调用方式完成客户端与远程设备间的通讯。
Socket异步调用下的多线程环境中,有一个共享的资源(缓存池),多个线程需要读写这个共享资源。考虑到系统的性能,并结合异步调用的情况,应该注意哪些资源的锁定控制?
我参考了很多资料,但都写的不是很具体。
盼高手出手相助!!谢谢
Socket异步调用下的多线程环境中,有一个共享的资源(缓存池),多个线程需要读写这个共享资源。考虑到系统的性能,并结合异步调用的情况,应该注意哪些资源的锁定控制?
我参考了很多资料,但都写的不是很具体。
盼高手出手相助!!谢谢
解决方案 »
- Devexpress View 导出Excel
- 请问大家在socket程序中遇到这种情况怎么处理好?
- cs 程序如何在本地读取服务器端的word文档??
- xml问题:1、如何判断一个节点是否为叶节点?2、如何转移一颗子树到其它节点下边?
- winform中的datagrid加picturebox问题
- [C高手指点] C头文件中的typedef 在C#中如何表达
- C#gridview里面的模板编辑,求高手帮忙!!!!
- xml读取的问题,这种xml怎么读?
- [关于Google Map API V3] 地图添加经纬度时崩溃,大牛求助!
- 有点挑战性的问题,内详!
- 一个类继承自身有什么意义?
- 帮忙转换一下这段代码(c++ to c#)
我写的是Winform程序。另外我提的不是异步编程的问题,而是异步编程中的多线程环境下对共享资源访问的控制。即如果高效的保证共享资源的线程安全。
Lock
SynchronizationAttribute
Monitor
ReaderWriterLock
等等方式。
因为我现在开发时间比较紧,没办法把这些方式都试一遍:(
共享资源的线程安全要求是允许同时多个阅读线程访问,但同时只能有一个线程写入(写入的同时不能有读取正在写入对象的操作)最好能给俺一段源码示例。先谢谢了!
再对访问的方法进行加lock即可.
{
临界区
}
我的目标是读的时候允许多线程同时进行(但不允许写),但写的时候不允许读并且只能有一个线程写入。