asp.net每一个画面实例都是在新的一个thread里面吗?
问题1:asp.net每一个画面实例都是在新的一个thread里面吗?
问题2:asp.net中,同一台机器上,两个IE打开同一个画面,都是在新的一个thread里面吗?
想用System.Threading.Thread.SetData()方法,但是又怕不同的request之间会有影响。。。
基本的概念性问题我都不会,耻辱阿:(
------解决方案--------------------你试一下就知道了.
结过测试就发现,同一个session的页面,是一个thread.
------解决方案--------------------学习了~~
------解决方案--------------------没有测试过,还是一楼精细。
------解决方案--------------------学习了
------解决方案--------------------得去问微软了,哈哈
------解决方案--------------------.....太低层的问题了。。。。
反编译.net framework我想一定可以得到答案
------解决方案--------------------对这个说法稍稍怀疑一下
举个例子,如果session的timeout设为60分钟
假设用户A在访问了一次之后,空闲了55分钟,然后再访问,那在这段时间中这个thread一直处于等待状态而无法被其他用户使用?这明显有现实的,ms也不会那么笨吧。
手边没环境,没法具体测试,但按照我对asp.net的理解,
在server中asp.net的进程中也是维护了一个线程池,每次在有request提交的时候,它会选出一个空闲的thread,分析http包,创建Context,Request,Session等对象,同时根据url和VIEWSTATE的值创建Page对象,再根据form中的值来调用handler
当线程池中没有的空闲的话,就会再创建thread,达到最大值就403了
所以,session和thread应该是“多对多”的关系,一个用户的session可能被多个thread处理(当然在每次request中只有一个),一个thread在整个生命周期中也会处理多个session(?还是说request更准确些)
不一定完全正确,大家继续讨论~
------解决方案--------------------同意 mmqingfeng(漠漠青峰) 观点
所以,session和thread应该是“多对多”的关系,一个用户的session可能被多个thread处理(当然在每次request中只有一个),一个thread在整个生命周期中也会处理多个session(?还是说request更准确些)
------------------------------------------------
以上,每次reqeust一次就一个thread,但是和Session没有任何关系。
不知道是否可以这样了解?
------解决方案--------------------路过
------解决方案--------------------mmqingfeng(漠漠青峰) ( ) 信誉:99 2007-9-20 14:59:12 得分: 0 支持
本人比较倾向于多对多
------解决方案--------------------同意 mmqingfeng(漠漠青峰) 观点
------解决方案--------------------恩,内部怎么运行就不清楚了。多线程是肯定的。不然全局变量的lock还有什么意义
------解决方案--------------------问题2:应该是2个线程
------解决方案--------------------每一个request,asp。net domain就会创建一个新的httpapplicaion
------解决方案--------------------单纯回答lz的问题的话,应该就是说:不安全!
lz还是说一下想实现什么样的功能比较好
------解决方案--------------------好贴,学习中...