好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

5天不再惧怕多线程--第一天尝试Thread.docx

11页
  • 卖家[上传人]:宝路
  • 文档编号:22251399
  • 上传时间:2017-11-26
  • 文档格式:DOCX
  • 文档大小:101.64KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 5天不再惧怕多线程—— 第一天 尝试 Thread 转至: mongodb之后写一个 系列,不过这几天用到多线程时才发现自己对多线程的了解少之又少,仅仅停留在 lock上面,故这几天看了下线程参考手册结合自己的心得整理一下放在博客上作为自己的学习笔记好了,我们知道“负载”是一个很时尚,很牛 X的玩意,往大处说,网站需要负载,数据库需要负载往小处说,线程也需要负载,面对海量的用户请求,我们的单线程肯定扛不住,那么怎么办,一定要负载,所以说多线程是我们码农必须要熟练掌握的一门技术在 framework中给我们提供了一个 Threading命名空间,下面是一个 msdn上不完整的截图:在后面的系列中我也是主要整理这几个类的使用方法和应用场景一:Thread 的使用我们知道这个类代表处理器线程,在 Thread中有几个比较常用和重要的方法sleep: 这个算是最简单的了join: 这个可以让并发行处理变成串行化,什么意思呢?上代码说话最清楚1 class Test2 {3 static void Main()4 {5 Thread t = new Thread(Run);6 7 t.Start();8 9 //Join相当于把 Run方法内嵌如此10 t.Join();11 12 //该死的 t.Join(),害的我主线程必须在你执行完后才能执行。

      13 Console.WriteLine("我是主线程:" + Thread.CurrentThread.GetHashCode());14 }15 16 static void Run()17 {18 //等待 5s19 Thread.Sleep(5000);20 21 Console.WriteLine("我是线程:" + Thread.CurrentThread.GetHashCode());22 }23 }Interrupt和 Abort:这两个关键字都是用来强制终止线程,不过两者还是有区别的① Interrupt: 抛出的是 ThreadInterruptedException 异常Abort: 抛出的是 ThreadAbortException 异常② Interrupt:如果终止工作线程,只能管到一次,工作线程的下一次 sleep就管不到了,相当于一个contine操作Abort:这个就是相当于一个 break操作,工作线程彻底死掉 Interrupt: 1 namespace Test2 {3 class Program4 {5 static void Main(string[] args)6 {7 Thread t = new Thread(new ThreadStart(Run));8 9 t.Start();10 11 //阻止动作12 t.Interrupt();13 14 Console.Read();15 }16 17 static void Run()18 {19 for (int i = 1; i 10; purl--)21 {22 for (int pageSize = 0; pageSize 102 /// 取得 HTML中所有图片的 URL。

      103 /// 104 /// HTML代码 105 /// 图片的 URL列表 106 public static List GetHtmlImageUrlList(string sHtmlText)107 {108 // 定义正则表达式用来匹配 img 标签 109 Regex regImg = new Regex(@"]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?[^\s\t\r\n""']*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);110 111 // 搜索匹配的字符串 112 MatchCollection matches = regImg.Matches(sHtmlText);113 114 List sUrlList = new List();115 116 // 取得匹配项列表 117 foreach (Match match in matches)118 sUrlList.Add(match.Groups["imgUrl"].Value);119 return sUrlList;120 }121 }三:对线程的一些思考 我们知道线程的优点还是比较多的,每个线程都需要默认的堆栈空间,所以说线程数受到内存空间大小的限制,如果线程数开的太多反而适得其反,进程被分配的时间片会被线程分的更细,也就导致了处理器需要更频繁的程之间来回切换。

      点击阅读更多内容
      相关文档
      2025届湖北省新八校协作体高三下学期10月联考-化学试题(含答案).docx 2025届河南省青桐鸣高三下学期10月大联考-历史试题(含答案).docx 2025届湖北省“酷云”联盟高三下学期10月联考-语文试题(含答案).docx 2025届湖北省“酷云”联盟高三下学期10月联考-生物试题(含答案).docx 2025届八省联考教研联盟高三下学期演练统一监测考-语文试卷(含答案).docx 2025届河南省青桐鸣高三下学期10月大联考-地理试题(含答案).docx 2025届湖北省“酷云”联盟高三下学期10月联考-政治试题(含答案).docx 2025届湖北省“酷云”联盟高三下学期10月联考-物理试题(含答案).docx 2025届河南省高三上学期联考(二)-语文试题(含答案).docx 2025届河南省高三上学期联考(二)-生物试题(含答案).docx 2025届广东省联考高三上学期10月月考-历史试题(含答案).docx 2025届八省联考教研联盟高三下学期演练统一监测考-物理试卷(含答案).docx 2025届河南省高三上学期联考(二)-物理试题(含答案).docx 2025届“江南十校”新高三下学期10月第一次综合素质考-数学试题(含答案).docx 2025届“江南十校”新高三下学期10月第一次综合素质考-政治试题(含答案).docx 2025届河南省高三上学期联考(二)-政治试题(含答案).docx 湖北省腾云联盟2024-2025学年高三上学期8月联考数学试卷(含答案).docx 2025届河南省创新发展联盟高三下学期9月联考-化学试题(含答案).docx 2025届云南省大理民族中学高三上学期开学考-地理试题(含答案).docx 2025届“江南十校”新高三下学期10月第一次综合素质考-英语试题(含答案).docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.