当前位置: 首页 > news >正文

做阀门网站电话号码注册域名之后怎么做网站

做阀门网站电话号码,注册域名之后怎么做网站,建设集团简介,网页模版图片一. 并行编程 1. 区分串行编程和串行编程 ①. 串行编程#xff1a;所谓的串行编程就是单线程的作用下#xff0c;按顺序执行。(典型代表for循环 下面例子从1-100按顺序执行) ②. 并行编程#xff1a;充分利用多核cpu的优势#xff0c;同时开启多个线程并行执行。(典型代表…一. 并行编程 1. 区分串行编程和串行编程 ①. 串行编程所谓的串行编程就是单线程的作用下按顺序执行。(典型代表for循环 下面例子从1-100按顺序执行) ②. 并行编程充分利用多核cpu的优势同时开启多个线程并行执行。(典型代表Parallel.For循环 下面例子从1-100无序执行) 代码实践 1 {2 //1. 串行 从1-100按顺序执行3 for (int i 1; i 100; i)4 {5 Console.WriteLine(i);6 }7 //2. 并行 从1-100无序执行8 Parallel.For(1, 100, (item) 9 { 10 Console.WriteLine(item); 11 }); 12 } 结论串行的代码按顺序依次输出并行的代码无顺序输出。 2. 深究Parallel类中的方法 For方法、ForEach方法、Invoke方法 这三个方法都是用来开启线程的 (1). Invoke方法 a. 该方法的作用就是用来同时开启多个线程的。 b. 该方法有两个重载主要涉及到两个参数用来配置最大并行数(即线程数)和一个可变的Action委托数组详见源码。 案例一 开启五个不同的线程调用五个方法 我们发现一个现象主线程等着这五个子线程执行完毕后才执行但是我们并没有写线程等待的代码所以我们可以总结 ①并行计算开启多个线程后不需要再开辟线程等待直接是主线程完成后续操作。 ②而普通多线程执行后需要单独再开辟一个线程等待然后主线程再执行。   代码实践 1 { 2 Parallel.Invoke(() this.TestThread(bct1) 3 , () this.TestThread(bct2) 4 , () this.TestThread(bct3) 5 , () this.TestThread(bct4) 6 , () this.TestThread(bct5) 7 ); 8 } 案例二 指定最大并行数进行线程调用 我们发现五个任务中的四个任务同时由不同线程开启当其中一个任务结束时第五个任务开启并由刚结束的任务的线程来执行。 {//设置最大的线程并行数ParallelOptions p new ParallelOptions();p.MaxDegreeOfParallelism 4;Parallel.Invoke(p, () this.TestThread(bct1), () this.TestThread(bct2), () this.TestThread(bct3), () this.TestThread(bct4), () this.TestThread(bct5));} (2). For方法 (前两个参数之间的差代表任务的个数) 这里介绍一个简单重载 public static ParallelLoopResult For(int fromInclusive, int toExclusive, Actionint body); fromInclusive:开始索引含. toExclusive:结束索引不含. body:将为每个迭代调用一次的委托. 当然该方法中的其他重载中也有很丰富的功能比如也可以配置最大线程数。 代码实践 1 {2 //案例一前两个参数之间的差就为并行计算线程的个数3 {4 Parallel.For(5, 10, t 5 {6 //这里的t分别为5,6,7,8,9 五个数7 string name string.Format(bct{0}, t);8 this.TestThread(name);9 }); 10 } 11 //案例二: 配置最大并行数 12 //结果同时最多5个线程执行但是还是要执行9个任务(6,7,8,9,10,11,12,13,14),后面四个任务等前面的执行完后再执行 13 { 14 ParallelOptions po new ParallelOptions() 15 { 16 MaxDegreeOfParallelism 5 //表示最大线程数为5后面即使配置超过5也无效 17 }; 18 Parallel.For(6, 15, po, (t, state) 19 { 20 string name string.Format(bct{0}, t); 21 this.TestThread(name); 22 //state.Break(); //退出单次循环(没看到实际作用) 23 // state.Stop(); //退出全部循环(没看到实际作用) 24 //return; 25 }); 26 } 27 } (3). ForEach方法 这里也是介绍一个简单的重载int数组中的个数代表需要进行并行任务的个数但并不一定所有任务同时执行也不一定每个任务都是一个新线程执行。 该方法当然也可以配置最大并行数。 代码实践 {//数组里的个数就为并行进行并行任务数Parallel.ForEach(new int[] { 3, 5, 44, 55, 100 }, t {//这里的t分别为3, 5, 44, 55, 100五个数string name string.Format(bct{0}, t);this.TestThread(name);} } 二. 常见的编程模型 1.同步编程模型(SPM)单线线程、串行开发模式。 2.异步编程模型(APM)xxxbegin、xxxend的模式。 3.基于事件的编程模型(EAP) xxAsync这样的事件模式。 egWebClient。 4.基于Task的编程模型(TAP) APM和EAP都可以使用Task来实现微软的初衷就是想通过Task大一统异步编程领域。 下面分享两段代码不做深入研究了。 1 {2 FileStream fs new FileStream(Environment.CurrentDirectory //1.txt, FileMode.Open);3 var bytes new byte[fs.Length];4 var task Task.Factory.FromAsync(fs.BeginRead, fs.EndRead, bytes, 0, bytes.Length, string.Empty);5 6 var nums task.Result;7 8 Console.WriteLine(nums);9 } 10 { 11 FileStream fs new FileStream(Environment.CurrentDirectory //1.txt, FileMode.Open); 12 13 var bytes new byte[fs.Length]; 14 15 fs.BeginRead(bytes, 0, bytes.Length, (aysc) 16 { 17 var nums fs.EndRead(aysc); 18 19 Console.WriteLine(nums); 20 21 }, string.Empty); 22 23 Console.Read(); 24 }
http://wiki.neutronadmin.com/news/371294/

相关文章:

  • 网站开发公司首页网站概念设计
  • 有没有专门做衣服搭配的网站专业零基础网站建设教学公司
  • 旅游网站开发流程重庆百度优化
  • 如何在微信上做广告新站seo优化快速上排名
  • 视觉创意设计公司商城网站不易优化
  • 外贸建站哪家织梦网站标题被改
  • 定制网站建设官网wordpress 表格小工具
  • 青岛做公司网站的多吗自己做的网站数据库
  • 什么网站有高端定制案例国内建筑公司排名
  • wordpress多站点 文章导入怀柔富阳网站建设
  • 兼职做问卷调查的网站好做网站的岗位好吗
  • 网站建设公众号开高端企业网站建设制作
  • 贵州网站建设设计公司哪家好网站建设的困难
  • 网站建设系统规划电商小程序定制开发
  • 网站推广策划书自己可以学着做网站吗
  • 怎么帮助网站推广wordpress 计数
  • 广告设计网站官网网络营销模式
  • 邵阳建网站自己建站模板
  • 网站被百度惩罚怎么办邢台市政建设集团网站
  • linux做网站教程排版
  • 公司网页网站建设+ppt模板下载网站设计开发报价
  • 国家补贴软件网站开发政策做外贸哪些国外网站可以推广
  • dedecms医院网站wap模板(橙色)腾讯云网站搭建流程
  • 网站建设都分几个阶段平面设计接单网站有哪些
  • 企业网站怎么搭建wordpress 特效插件
  • 赤壁网站定制印度vps
  • 阿里建站服务平台营销策略
  • 手机网站样式企业网络拓扑图的设计方案
  • 如何做旅游休闲网站wordpress 邮件写文章
  • wordpress多本小说站出售全国中高风险地区最新名单