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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 14019|回复: 20

[其他] 多线程数据量大时会出现未响应的情况

[复制链接]
发表于 2013-3-9 17:09:28 | 显示全部楼层 |阅读模式
本帖最后由 静静 于 2013-3-11 15:45 编辑

请问,多线程里面,同时3,4个线程,如果采集处理数据循环几百次,就出现程序未响应的情况,要怎样解决啊?

怎样能判断是哪里引起的未响应呢?


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-3-9 17:13:18 | 显示全部楼层
根据电脑和网速进行一定量的减少关发次数,因为采集很费网和电脑性能,你先看看电脑的CPU和带宽能不能跟上,正常情况下是没有问题的,可以参考下我的多线程采集的方式http://www.sufeinet.com/thread-13-1-1.html

 楼主| 发表于 2013-3-9 17:46:05 | 显示全部楼层
谢谢了,CPU使用率还好,最高就12,网速感觉也还行,呵呵
发表于 2013-3-9 17:47:02 | 显示全部楼层
静静 发表于 2013-3-9 17:46
谢谢了,CPU使用率还好,最高就12,网速感觉也还行,呵呵

那就贴下代码吧,没代码不容易找到问题所在
 楼主| 发表于 2013-3-9 17:49:37 | 显示全部楼层
会不会是这几个线程的数据处理都是对同一个表的问题
发表于 2013-3-9 17:57:01 | 显示全部楼层
静静 发表于 2013-3-9 17:49
会不会是这几个线程的数据处理都是对同一个表的问题

数据量有多大,你发下表情况,或者是你建所引了吗?怎么建的,分享下索引和Sql语句看看情况
 楼主| 发表于 2013-3-9 18:01:06 | 显示全部楼层
而且有时是运行十几分钟就不行了,有时又能运行半个小时左右,真郁闷啊
发表于 2013-3-9 18:02:43 | 显示全部楼层
静静 发表于 2013-3-9 18:01
而且有时是运行十几分钟就不行了,有时又能运行半个小时左右,真郁闷啊

1.不行的时候看看内存,看看Cpu,看看网速?然后发个图片或者是数据,
2.发下代码得点部分就行
3.发下Sql语句,索引情况
楼主发下这些吧,要不然咱光这样讨论不出结果的
 楼主| 发表于 2013-3-9 19:26:19 | 显示全部楼层
本帖最后由 静静 于 2013-3-9 19:38 编辑

Private startGet(6) As Threading.Thread

    Private Sub getStart()
        Try

            startGet(0) = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf start1))
            startGet(0).Start()

            startGet(1) = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf start2))
            startGet(1).Start()

            startGet(2) = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf start3))
            startGet(2).Start()

            startGet(3) = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf start4))
            startGet(3).Start()

            startGet(4) = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf start5))
            startGet(4).Start()
            ' ''

        Catch ex As Exception

        End Try

    End Sub

    Private Sub start1()
        Try
            While True

                Try
                    '
                    getData1()
                    '
                Catch ex As Exception

                End Try


                startGet(0).Sleep(6000)

            End While

        Catch ex As Exception

        End Try
    End Sub

    Private Sub start2()
        Try
            While True

                Try
                    '
                    getData2()
                    '
                Catch ex As Exception

                End Try


                startGet(1).Sleep(6000)

            End While

        Catch ex As Exception

        End Try
    End Sub

    Private Sub start3()
        Try
            While True

                Try
                    '
                    getData3()
                    '
                Catch ex As Exception

                End Try


                startGet(2).Sleep(6000)

            End While

        Catch ex As Exception

        End Try
    End Sub

    Private Sub start4()
        Try
            While True

                Try
                    '
                    getData4()
                    '
                Catch ex As Exception

                End Try


                startGet(3).Sleep(6000)

            End While

        Catch ex As Exception

        End Try
    End Sub

Private Sub start5()
        Try
            While True

                Try
                    '
                    getData5()
                    '
                Catch ex As Exception

                End Try


                startGet(4).Sleep(6000)

            End While

        Catch ex As Exception

        End Try
    End Sub
发表于 2013-3-9 19:28:59 | 显示全部楼层
静静 发表于 2013-3-9 19:26
Private startGet(6) As Threading.Thread

    Private Sub getStart()

VB?代码没有多大问题,看看你的数据库和索引吧
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-22 07:59

© 2014-2021

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