愚 愚鱼 Unregistered / Unconfirmed GUEST, unregistred user! 2005-03-22 #1 我现在有这样一个问题,用到了多线程,在多线程处理的部分涉及不到线程之间互斥的问题,而是在主线程要同时对全局设的一个“队列“变量存在同时在队头读取信息,在队尾写入信息的操作,应该地用到互斥的问题,但我查了一些资料,这种操作都是在处理多线程的部分中进行操作的,向我这种问题应该怎么处理啊,请各位高手明示。
我现在有这样一个问题,用到了多线程,在多线程处理的部分涉及不到线程之间互斥的问题,而是在主线程要同时对全局设的一个“队列“变量存在同时在队头读取信息,在队尾写入信息的操作,应该地用到互斥的问题,但我查了一些资料,这种操作都是在处理多线程的部分中进行操作的,向我这种问题应该怎么处理啊,请各位高手明示。
愚 愚鱼 Unregistered / Unconfirmed GUEST, unregistred user! 2005-03-22 #2 我现在有这样一个问题,用到了多线程,在多线程处理的部分涉及不到线程之间互斥的问题,而是在主线程要同时对全局设的一个“队列“变量存在同时在队头读取信息,在队尾写入信息的操作,应该地用到互斥的问题,但我查了一些资料,这种操作都是在处理多线程的部分中进行操作的,向我这种问题应该怎么处理啊,请各位高手明示。
我现在有这样一个问题,用到了多线程,在多线程处理的部分涉及不到线程之间互斥的问题,而是在主线程要同时对全局设的一个“队列“变量存在同时在队头读取信息,在队尾写入信息的操作,应该地用到互斥的问题,但我查了一些资料,这种操作都是在处理多线程的部分中进行操作的,向我这种问题应该怎么处理啊,请各位高手明示。
迷 迷糊 Unregistered / Unconfirmed GUEST, unregistred user! 2005-03-22 #3 主线程也是线程,所以主线程和子线程在读写全局队列是都要放在临界区中保护
D djwdz Unregistered / Unconfirmed GUEST, unregistred user! 2005-03-23 #4 统一楼上的说法,只要是线程之间通信,就必须考虑线程的同步问题
愚 愚鱼 Unregistered / Unconfirmed GUEST, unregistred user! 2005-04-20 #5 还有个问题就是 InitializeCriticalSection(InterlockedCrit); EnterCriticalSection( InterlockedCrit ); .......具体要入的程序语句(getwebpag(参数一,参数二,参数三)); LeaveCriticalSection( InterlockedCrit ); 我不太明白。在具体要入的程序语句中如果其中的“参数二”是个全局变量,函数放入临界区的目的就是为了“参数二”,但我不知道我现在采用的这种方法是只对“参数二”进行了保护,还是对“参数一,参数二,参数三”都进行了保护,还是对整个getwebpag(参数一,参数二,参数三)代码段进行了保护?
还有个问题就是 InitializeCriticalSection(InterlockedCrit); EnterCriticalSection( InterlockedCrit ); .......具体要入的程序语句(getwebpag(参数一,参数二,参数三)); LeaveCriticalSection( InterlockedCrit ); 我不太明白。在具体要入的程序语句中如果其中的“参数二”是个全局变量,函数放入临界区的目的就是为了“参数二”,但我不知道我现在采用的这种方法是只对“参数二”进行了保护,还是对“参数一,参数二,参数三”都进行了保护,还是对整个getwebpag(参数一,参数二,参数三)代码段进行了保护?
火 火山 Unregistered / Unconfirmed GUEST, unregistred user! 2005-04-20 #6 把参数二做成属性,对属性的写进行监界区保护吧。 或者你把监界区放在那个getwebpag()里面对参数二的修改处。 不再用时记得调用DeleteCriticalSection(InterlockedCrit)删除监界区变量
把参数二做成属性,对属性的写进行监界区保护吧。 或者你把监界区放在那个getwebpag()里面对参数二的修改处。 不再用时记得调用DeleteCriticalSection(InterlockedCrit)删除监界区变量
Z zhenshunli Unregistered / Unconfirmed GUEST, unregistred user! 2005-04-23 #8 可以用TCriticalSectio对象来实现