http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 16754|回复: 49

[视频教程] 番外篇 之 并行多线程

[复制链接]
发表于 2014-11-28 10:24:15 | 显示全部楼层 |阅读模式
本帖最后由 ro4ters 于 2015-8-6 22:34 编辑

[C#] 纯文本查看 复制代码
并行与普通区别:        普通:         1000个账号,每个账号执行需要耗时1s.
                 等任务执行完.1000s.
    并行:     1s内同时(“歧义:不是绝对的同时”)执行1000个账号     
private void btnExec_Click(objectsender, EventArgs e)
        {
           List<Users>ulist = new List<Users>();
           ulist.Add(new Users("君临0", "123456"));
           ulist.Add(new Users("君临1", "123456"));
           ulist.Add(new Users("君临2", "123456"));
           ulist.Add(new Users("君临3", "123456"));
           //多线程1.  一条线程执行多任务.
           Thread th = newThread(new ThreadStart(delegate{
               for (inti = 0; i < ulist.Count; i++)
               {
                    lock(obj)
                    {
                        x =GetIndexHtml(ulist);
                        //x 得到值以后才能继续
                    }
               }
           }));
           th.Start();
            
        }
        object obj = new object();
        string data = "{0},{1}";
        string url = "www.xuanjics.com";
        int x;//公共变量
        private intGetIndexHtml(Users user)
        {
           /*
              get 过程
             */
           string str = string.Format(data,user.Name, user.Pass);
           return 0;
        }
//多线程2  
           for (inti = 0; i < ulist.Count; i++)
           {
               //多少个任务多少条线程.
               Thread th = newThread(new ThreadStart(delegate
               {
                    lock(obj)  //这还有用么?
                    {
                        x =GetIndexHtml(ulist);
                        //x 得到值以后才能继续
                    }
               }));
               th.Start();
           }
//多线程3   
           for (inti = 0; i < ulist.Count; i++)
           {
               lock (obj)  //这是可以的
               {
                    //多少个任务多少条线程.
                    Threadth = new Thread(new ThreadStart(delegate
                    {
                        x =GetIndexHtml(ulist);
                        //x 得到值以后才能继续
                    }));
                    th.Start();
               }
           }


视频下载地址:http://bbs.msdn5.com/forum-2-1.html


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-11-28 11:44:39 | 显示全部楼层
打Lock干什么,或者是说出于什么考虑
 楼主| 发表于 2014-11-28 17:35:53 | 显示全部楼层
站长苏飞 发表于 2014-11-28 11:44
打Lock干什么,或者是说出于什么考虑

对线程锁的举例.实际内容在视频里.
发表于 2014-11-28 23:31:23 | 显示全部楼层
来学习了
回复

使用道具 举报

发表于 2014-11-29 01:50:11 | 显示全部楼层
学习,正想学这块
发表于 2014-11-29 23:56:42 | 显示全部楼层
感谢您的无私奉献,真是帮了我的大忙了
发表于 2014-12-3 21:02:28 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2014-12-4 23:32:50 | 显示全部楼层
感谢您的无私奉献,真是帮了我的大忙了
发表于 2014-12-5 10:02:52 | 显示全部楼层
看看·······················
发表于 2014-12-5 10:02:55 | 显示全部楼层
看看·······················
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 12:33

© 2014-2021

快速回复 返回顶部 返回列表