这两天学习了一下线程、进程,但是用的都是C#控制台应用程序。
我的状态就是知道一些基本概念,知道Thread类,会一些简单的基本应用。自己模仿着写了一个关于线程的银行取钱的问题,自己测试,完全没有体会到它的好处来,感觉就是为了线程而线程。我的问题一是:在web开发中使用基于线程的多线程问题能够带来哪些好处以及作用?
另外,在多个客户端访问一个网站,是在每个客户端都实例化一个进程?还是怎么回事啊?从我学习开始,我就没有弄明白,期待高手解惑
第三个问题,线程同步和锁的问题,如果我新建了一个网站,程序中有一个共享的互斥变量,使用lock锁住,如我在两个客户端访问这个网站的时候,一个客户端进入lock区域后,另外一个必须就必须等待吗?高手们,快来畅所欲言,给我解惑吧
我的状态就是知道一些基本概念,知道Thread类,会一些简单的基本应用。自己模仿着写了一个关于线程的银行取钱的问题,自己测试,完全没有体会到它的好处来,感觉就是为了线程而线程。我的问题一是:在web开发中使用基于线程的多线程问题能够带来哪些好处以及作用?
另外,在多个客户端访问一个网站,是在每个客户端都实例化一个进程?还是怎么回事啊?从我学习开始,我就没有弄明白,期待高手解惑
第三个问题,线程同步和锁的问题,如果我新建了一个网站,程序中有一个共享的互斥变量,使用lock锁住,如我在两个客户端访问这个网站的时候,一个客户端进入lock区域后,另外一个必须就必须等待吗?高手们,快来畅所欲言,给我解惑吧
解决方案 »
- ModalPopupExtender弹出位置问题
- 我现在要做一个文件管理器,刚学。net开发不久,大神们能不能给一点思路
- 软件崩溃如何自动启动
- C# 怎样完成像web xunlei一样下载的页面呢
- C#连接Oracle时有没有轻量级一点的办法
- .net+sql server 连接池默认连接数是多少?
- 在类或命名空间“Ch03Ex02.Class1”中不存在
- 请高手给个思路,谢谢
- 怎样在程序运行时,实时编译一个文件加到程序中,并将运行
- Datagridview 控件背景颜色代码要写在那个事件里才有效果
- c# 无法登录带验证码的网站
- winform下如何剥去 HTML、XML 以及 PHP 的标签
1)阻塞+多线程式 -- 为每个连接过来的用户开启一个线程处理(或者用线程池)用户处理完毕之后线程释放.
2)非阻塞 -- 非阻塞的方式处理所有用户请求,一般只有1-2个线程做侦听,而处理上可能是结合线程池.
这个问题已经不需要WEB开发人员去关注了,具体情况是IIS或者其他WEB容器所干的活.3,如果以系统提供的内存对象来说一个网站的内存分为 应用程序内存 和 用户会话内存. 其中用户会话是独享,应用程序内存是共享.也只有应用程序内存需要考虑锁这个问题.
在线程角度,如果有现成锁了某区域,当然其他的就必须等待.
1,web开发不需要多线程,需要多线程的相关逻辑IIS已经帮你实现好了.其实你相当于给IIS开发了一个组件而已.不相信?看你bin下编译出的东西就知道.2,多个客户端访问一个网站的时候 一般的WEB服务器有2种做法.
1)阻塞+多线程式 -- 为每个连接过来的用户开启一个线程处理(或者用线程池)用户处理完毕之后线程释放.
2)非阻塞 -- 非阻塞的方式处理所有用户请求,一般只有1-2个线程做侦听,而处理上可能是结合线程池.
这个问题已经不需要WEB开发人员去关注了,具体情况是IIS或者其他WEB容器所干的活.3,如果以系统提供的内存对象来说一个网站的内存分为 应用程序内存 和 用户会话内存. 其中用户会话是独享,应用程序内存是共享.也只有应用程序内存需要考虑锁这个问题.
在线程角度,如果有现成锁了某区域,当然其他的就必须等待.
1、C#多线程学习(一) 多线程的相关概念
http://www.cnblogs.com/xugang/archive/2008/04/06/1138856.html
2、 C#多线程学习 (二) 如何操纵一个线程
http://www.cnblogs.com/xugang/archive/2008/04/06/1138841.html
3、 C#多线程学习 (三) 生产者和消费者
http://www.cnblogs.com/xugang/archive/2008/03/23/1118594.html
4、 C#多线程学习 (四) 多线程的自动管理(线程池)
http://www.cnblogs.com/xugang/archive/2008/03/23/1118584.html
5、 C#多线程学习 (五) 多线程的自动管理(定时器)
http://www.cnblogs.com/xugang/archive/2008/03/23/1118537.html
6、 C#多线程学习 (六) 互斥对象
http://www.cnblogs.com/xugang/archive/2008/03/23/1118530.html
7、.Net 线程问题解答
http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html
8、 Visual C#中使用线程
http://www.cnblogs.com/ZHOULONG/archive/2008/04/06/1139067.html
9、 C# 线程资源同步方式总结
http://www.cnblogs.com/VincentWP/archive/2008/06/25/1229104.html
10、 C# 线程系列讲座(1):BeginInvoke和EndInvoke方法
http://www.cnblogs.com/nokiaguy/archive/2008/07/13/1241817.html
11、 C# 线程系列讲座(2):Thread类的应用
http://www.cnblogs.com/nokiaguy/archive/2008/07/16/1244746.html
12、 C# 线程系列讲座(3):线程池和文件下载服务器
http://www.cnblogs.com/nokiaguy/archive/2008/07/18/1246299.html
13、 C# 线程系列讲座(4):同步与死锁
http://www.cnblogs.com/nokiaguy/archive/2008/07/25/1251756.html
14、 C# 线程系列讲座(5):同步技术之Monitor
http://www.cnblogs.com/nokiaguy/archive/2008/07/31/1257625.html
有机会写个Web Server就知道了,Thread不是Web开发者的事情,Thread的调度是Server的事情。而且Server也不希望Web的开发者使用任何Thread相关的操作,虽然禁不掉。