首页 > 代码库 > 异步和多线程的区别
异步和多线程的区别
多线程会有一个工作线程,占用更多的CPU。
异步将使用DMA模式的IO操作
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { var p = new Program(); var url = "http://bj.58.com/"; p.Asynchronous(url); p.MultiThread(url); Console.ReadKey(); } void Asynchronous(string url) { var request = HttpWebRequest.Create(url); request.BeginGetResponse((IAsyncResult ar) => { var request_inner = ar.AsyncState as WebRequest; var response = request.EndGetResponse(ar); read(response, "Asynchronous"); }, request); } void MultiThread(string url) { var t = new Thread(() => { var request = HttpWebRequest.Create(url); var response = request.GetResponse(); read(response, "MultiThread"); }); t.Start(); } private static void read(WebResponse response, string funcname) { var stream = response.GetResponseStream(); using (var reader = new StreamReader(stream)) { Console.WriteLine("{0} {1}", funcname, reader.ReadToEnd().Length); } } }}
异步和多线程的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。