就剩100分全送了,问一个让我很困惑的线程问题
1 windows本身不就已经是多线程在工作吗?那就是说我们的asp.net网页程序,也默认是在多线程工作,既然这样,为什么还需要多线程编程提高效率?
2 一个asp.net动态网页程序,如果很多人在同时请求访问,那是不是可以这么理解,每个请求过来,系统都会增加一个主线程?然后主线程又开了N多个子线程去处理各种任务?
3 比如我们有一个类叫classa,然后我们创建这个类的实例,classa thisa = new classa();
执行这句话,服务器就是把一个类实例化并放入到一个内存中
这时候我困惑的是,如果多个线程都在new这个实例的时候,那么他们之间是共享这个类实例,还是各自有各自的类实例?
如果共享的话,就意味着同时new时会产生冲突,有可能请求出来n个出来,那么我们平时这么写
new classa(),就是存在风险的,必须先lock,但现在看很少有人考虑new 实例时去lock它,为什么?
如果各自有各自的实例,那么岂不是占用很多的内存?而这些实例又是一样的,似乎windows也没有必要做
先问这几个问题,请达人给答疑解惑,谢谢了