Socket异步调用下的多线程环境中,有一个共享的资源(缓存池),多个线程需要读写这个共享资源。考虑到系统的性能,并结合异步调用的情况,应该注意哪些资源的锁定控制?
我参考了很多资料,但都写的不是很具体。
盼高手出手相助!!谢谢
12 个解决方案
#1
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242261
#2
Mark!
#3
to 我参考了很多资料,但都写的不是很具体。
每个程序面对的应用不一样,所以都会有偏差,但大致的方法都是一样的。
每个程序面对的应用不一样,所以都会有偏差,但大致的方法都是一样的。
#4
To downmoon(邀月) :
我写的是Winform程序。另外我提的不是异步编程的问题,而是异步编程中的多线程环境下对共享资源访问的控制。即如果高效的保证共享资源的线程安全。
Lock
SynchronizationAttribute
Monitor
ReaderWriterLock
等等方式。
因为我现在开发时间比较紧,没办法把这些方式都试一遍:(
共享资源的线程安全要求是允许同时多个阅读线程访问,但同时只能有一个线程写入(写入的同时不能有读取正在写入对象的操作)
最好能给俺一段源码示例。先谢谢了!
我写的是Winform程序。另外我提的不是异步编程的问题,而是异步编程中的多线程环境下对共享资源访问的控制。即如果高效的保证共享资源的线程安全。
Lock
SynchronizationAttribute
Monitor
ReaderWriterLock
等等方式。
因为我现在开发时间比较紧,没办法把这些方式都试一遍:(
共享资源的线程安全要求是允许同时多个阅读线程访问,但同时只能有一个线程写入(写入的同时不能有读取正在写入对象的操作)
最好能给俺一段源码示例。先谢谢了!
#5
自己顶一下
#6
给共享资源的访问封装起来,
再对访问的方法进行加lock即可.
再对访问的方法进行加lock即可.
#7
lock
{
临界区
}
{
临界区
}
#8
但是假如是遍历集合时,lock锁定临界区时,会妨碍其他线程访问共享资源吧
我的目标是读的时候允许多线程同时进行(但不允许写),但写的时候不允许读并且只能有一个线程写入。
我的目标是读的时候允许多线程同时进行(但不允许写),但写的时候不允许读并且只能有一个线程写入。
#9
切盼中...
#10
专业up
#11
搂住不地道呀,bluexingqing(蓝色)就发了个专业up就给那么多分,别人那么辛苦帮你回答才每个人5分,估计bluexingqing(蓝色)是你的马甲,我要举报
#12
mark
#1
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242261
#2
Mark!
#3
to 我参考了很多资料,但都写的不是很具体。
每个程序面对的应用不一样,所以都会有偏差,但大致的方法都是一样的。
每个程序面对的应用不一样,所以都会有偏差,但大致的方法都是一样的。
#4
To downmoon(邀月) :
我写的是Winform程序。另外我提的不是异步编程的问题,而是异步编程中的多线程环境下对共享资源访问的控制。即如果高效的保证共享资源的线程安全。
Lock
SynchronizationAttribute
Monitor
ReaderWriterLock
等等方式。
因为我现在开发时间比较紧,没办法把这些方式都试一遍:(
共享资源的线程安全要求是允许同时多个阅读线程访问,但同时只能有一个线程写入(写入的同时不能有读取正在写入对象的操作)
最好能给俺一段源码示例。先谢谢了!
我写的是Winform程序。另外我提的不是异步编程的问题,而是异步编程中的多线程环境下对共享资源访问的控制。即如果高效的保证共享资源的线程安全。
Lock
SynchronizationAttribute
Monitor
ReaderWriterLock
等等方式。
因为我现在开发时间比较紧,没办法把这些方式都试一遍:(
共享资源的线程安全要求是允许同时多个阅读线程访问,但同时只能有一个线程写入(写入的同时不能有读取正在写入对象的操作)
最好能给俺一段源码示例。先谢谢了!
#5
自己顶一下
#6
给共享资源的访问封装起来,
再对访问的方法进行加lock即可.
再对访问的方法进行加lock即可.
#7
lock
{
临界区
}
{
临界区
}
#8
但是假如是遍历集合时,lock锁定临界区时,会妨碍其他线程访问共享资源吧
我的目标是读的时候允许多线程同时进行(但不允许写),但写的时候不允许读并且只能有一个线程写入。
我的目标是读的时候允许多线程同时进行(但不允许写),但写的时候不允许读并且只能有一个线程写入。
#9
切盼中...
#10
专业up
#11
搂住不地道呀,bluexingqing(蓝色)就发了个专业up就给那么多分,别人那么辛苦帮你回答才每个人5分,估计bluexingqing(蓝色)是你的马甲,我要举报
#12
mark