ThreadPool.QueueUserWorkItem(h => { var a = 1; var b = a + 1; });
new Thread(x => { var a = 1; var b = a + 1; }).Start();
[quote=引用 1 楼 ajianchina 的回复:] 不是依次处理,在设定的连接数范围内多线程并发处理。
不是依次处理,在设定的连接数范围内多线程并发处理。
晕死!你看来是被java给绕晕了。 所谓用一个容器(或者说队列)存储起来依次处理,你信吗?你可以测试一下,一个用1秒钟处理的网页会不会阻塞一个用5毫秒处理的网页呢?不会的!所以所谓容器、队列的概念,只是一个很低级的技术概念,并不是高级的业务处理概念。任务是并发地被处理的,不管中间用了什么存储结构,最终还是要从这个存储结构中删除,而去“散列开”去并发处理。 在并发处理中,如果遇到访问共享的数据的情况需要同步,那么使用lock之类的语句可以让多线程(或者多进程)进入“管理区域”,同一时间只有一个线程(或者进程)执行这个区域中的代码。这在操作系统原理课程中会作为一个基本概念而讲到,在.net中你应该学会使用它。 总之,任务是并发的,并发的任务如果有个别一小块代码需要同步则可以使用lock。就是这个基本的知识点,而应该把多余的中间存储概念忘掉。
62,243
社区成员
668,998
社区内容
加载中
.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。
希望和大家一起共同营造一个活跃、友好的社区氛围。
试试用AI创作助手写篇文章吧