据说Python多线程是伪多线程,本质上是单线程,经测试,效果确实不好,速度远比不上pthread多线程。

其实,Python本来就比C慢,没法比的。不过Python简单,这点pthread永远比不了。

注:千万不能恶意刷站,否则后果自负,哈哈~~~

import threading
import urllib.error
import urllib.requestTIMES = 10000
URL = "http://bbs.tianya.cn"class WorkerThread(threading.Thread):def __init__(self, name):threading.Thread.__init__(self)self.name = namedef run(self):while True:WorkerThread.LOCK.acquire()WorkerThread.COUNT = WorkerThread.COUNT + 1if WorkerThread.COUNT > WorkerThread.TIMES:WorkerThread.LOCK.release()breakprint('线程名称:%s\t读取次数:%d' % (self.name, WorkerThread.COUNT))WorkerThread.LOCK.release()try:urllib.request.urlopen(WorkerThread.URL).read()except (urllib.error.URLError, ConnectionResetError, Exception):print('线程名称:%s\t读取失败' % (self.name, ))def thread_demo():for i in range(100):WorkerThread("Worker_%02d" % (i, )).start()if __name__ == '__main__':WorkerThread.URL = URLWorkerThread.COUNT = 0WorkerThread.TIMES = TIMESWorkerThread.LOCK = threading.RLock()thread_demo()

运行结果:

"C:\Program Files\Python\python.exe" "D:/Pycharm Projects/PyDemo/ThreadDemo.py"
线程名称:Worker_00   读取次数:1
线程名称:Worker_01   读取次数:2
线程名称:Worker_02   读取次数:3
线程名称:Worker_03   读取次数:4
线程名称:Worker_04   读取次数:5
线程名称:Worker_05   读取次数:6
线程名称:Worker_06   读取次数:7
线程名称:Worker_07   读取次数:8
线程名称:Worker_08   读取次数:9
线程名称:Worker_09   读取次数:10
线程名称:Worker_10   读取次数:11
线程名称:Worker_11   读取次数:12
线程名称:Worker_12   读取次数:13
线程名称:Worker_13   读取次数:14
线程名称:Worker_14   读取次数:15
线程名称:Worker_15   读取次数:16
线程名称:Worker_16   读取次数:17
线程名称:Worker_17   读取次数:18
线程名称:Worker_18   读取次数:19
线程名称:Worker_19   读取次数:20
线程名称:Worker_20   读取次数:21
线程名称:Worker_21   读取次数:22
线程名称:Worker_22   读取次数:23
线程名称:Worker_23   读取次数:24
线程名称:Worker_24   读取次数:25
线程名称:Worker_25   读取次数:26
线程名称:Worker_26   读取次数:27
线程名称:Worker_27   读取次数:28
线程名称:Worker_28   读取次数:29
线程名称:Worker_29   读取次数:30
线程名称:Worker_30   读取次数:31
线程名称:Worker_31   读取次数:32
线程名称:Worker_32   读取次数:33
线程名称:Worker_33   读取次数:34
线程名称:Worker_34   读取次数:35
线程名称:Worker_35   读取次数:36
线程名称:Worker_36   读取次数:37
线程名称:Worker_37   读取次数:38
线程名称:Worker_38   读取次数:39
线程名称:Worker_39   读取次数:40
线程名称:Worker_40   读取次数:41
线程名称:Worker_41   读取次数:42
线程名称:Worker_42   读取次数:43
线程名称:Worker_43   读取次数:44
线程名称:Worker_44   读取次数:45
线程名称:Worker_45   读取次数:46
线程名称:Worker_46   读取次数:47
线程名称:Worker_47   读取次数:48
线程名称:Worker_48   读取次数:49
线程名称:Worker_49   读取次数:50
线程名称:Worker_50   读取次数:51
线程名称:Worker_51   读取次数:52
线程名称:Worker_52   读取次数:53
线程名称:Worker_53   读取次数:54
线程名称:Worker_54   读取次数:55
线程名称:Worker_55   读取次数:56
线程名称:Worker_56   读取次数:57
线程名称:Worker_57   读取次数:58
线程名称:Worker_58   读取次数:59
线程名称:Worker_59   读取次数:60
线程名称:Worker_60   读取次数:61
线程名称:Worker_61   读取次数:62
线程名称:Worker_62   读取次数:63
线程名称:Worker_63   读取次数:64
线程名称:Worker_64   读取次数:65
线程名称:Worker_65   读取次数:66
线程名称:Worker_66   读取次数:67
线程名称:Worker_67   读取次数:68
线程名称:Worker_68   读取次数:69
线程名称:Worker_69   读取次数:70
线程名称:Worker_70   读取次数:71
线程名称:Worker_71   读取次数:72
线程名称:Worker_72   读取次数:73
线程名称:Worker_73   读取次数:74
线程名称:Worker_74   读取次数:75
线程名称:Worker_75   读取次数:76
线程名称:Worker_76   读取次数:77
线程名称:Worker_77   读取次数:78
线程名称:Worker_78   读取次数:79
线程名称:Worker_79   读取次数:80
线程名称:Worker_80   读取次数:81
线程名称:Worker_81   读取次数:82
线程名称:Worker_82   读取次数:83
线程名称:Worker_83   读取次数:84
线程名称:Worker_84   读取次数:85
线程名称:Worker_85   读取次数:86
线程名称:Worker_86   读取次数:87
线程名称:Worker_87   读取次数:88
线程名称:Worker_88   读取次数:89
线程名称:Worker_89   读取次数:90
线程名称:Worker_90   读取次数:91
线程名称:Worker_91   读取次数:92
线程名称:Worker_92   读取次数:93
线程名称:Worker_93   读取次数:94
线程名称:Worker_94   读取次数:95
线程名称:Worker_95   读取次数:96
线程名称:Worker_96   读取次数:97
线程名称:Worker_97   读取次数:98
线程名称:Worker_98   读取次数:99
线程名称:Worker_99   读取次数:100
线程名称:Worker_13   读取次数:101
线程名称:Worker_17   读取次数:102
线程名称:Worker_06   读取次数:103
线程名称:Worker_75   读取次数:104
线程名称:Worker_59   读取次数:105
线程名称:Worker_09   读取次数:106
线程名称:Worker_30   读取次数:107
线程名称:Worker_83   读取次数:108
线程名称:Worker_32   读取次数:109
线程名称:Worker_48   读取次数:110
线程名称:Worker_33   读取次数:111
线程名称:Worker_90   读取次数:112
线程名称:Worker_38   读取次数:113
线程名称:Worker_45   读取次数:114
线程名称:Worker_40   读取次数:115
线程名称:Worker_52   读取次数:116
线程名称:Worker_03   读取次数:117
线程名称:Worker_87   读取次数:118
线程名称:Worker_19   读取次数:119
线程名称:Worker_89   读取次数:120
线程名称:Worker_56   读取次数:121
线程名称:Worker_64   读取次数:122
线程名称:Worker_31   读取次数:123
线程名称:Worker_24   读取次数:124
线程名称:Worker_96   读取次数:125
线程名称:Worker_00   读取次数:126
线程名称:Worker_43   读取次数:127
线程名称:Worker_93   读取次数:128
线程名称:Worker_20   读取次数:129
线程名称:Worker_53   读取次数:130
线程名称:Worker_46   读取次数:131
线程名称:Worker_97   读取次数:132
线程名称:Worker_35   读取次数:133
线程名称:Worker_16   读取次数:134
线程名称:Worker_36   读取次数:135
线程名称:Worker_58   读取次数:136
线程名称:Worker_05   读取次数:137
线程名称:Worker_76   读取次数:138
线程名称:Worker_85   读取次数:139
线程名称:Worker_47   读取次数:140
线程名称:Worker_59   读取次数:141
线程名称:Worker_37   读取次数:142
线程名称:Worker_68   读取次数:143
线程名称:Worker_51   读取次数:144
线程名称:Worker_91   读取次数:145
线程名称:Worker_63   读取次数:146
线程名称:Worker_71   读取次数:147
线程名称:Worker_90   读取次数:148
线程名称:Worker_33   读取次数:149
线程名称:Worker_80   读取次数:150
线程名称:Worker_50   读取次数:151
线程名称:Worker_57   读取次数:152
线程名称:Worker_48   读取次数:153
线程名称:Worker_26   读取次数:154
线程名称:Worker_32   读取次数:155
线程名称:Worker_83   读取次数:156
线程名称:Worker_29   读取次数:157
线程名称:Worker_72   读取次数:158
线程名称:Worker_41   读取次数:159
线程名称:Worker_34   读取次数:160
线程名称:Worker_55   读取次数:161
线程名称:Worker_66   读取次数:162
线程名称:Worker_70   读取次数:163
线程名称:Worker_28   读取次数:164
线程名称:Worker_11   读取次数:165
线程名称:Worker_12   读取次数:166
线程名称:Worker_89   读取次数:167
线程名称:Worker_40   读取次数:168
线程名称:Worker_54   读取次数:169
线程名称:Worker_02   读取次数:170
线程名称:Worker_13   读取次数:171
线程名称:Worker_99   读取次数:172
线程名称:Worker_06   读取次数:173
线程名称:Worker_94   读取次数:174
线程名称:Worker_82   读取次数:175
线程名称:Worker_61   读取次数:176
线程名称:Worker_27   读取次数:177
线程名称:Worker_78   读取次数:178
线程名称:Worker_62   读取次数:179
线程名称:Worker_92   读取次数:180
线程名称:Worker_21   读取次数:181
线程名称:Worker_81   读取次数:182
线程名称:Worker_25   读取次数:183
线程名称:Worker_15   读取次数:184
线程名称:Worker_79   读取次数:185
线程名称:Worker_18   读取次数:186
线程名称:Worker_75   读取次数:187
线程名称:Worker_60   读取次数:188
线程名称:Worker_88   读取次数:189
线程名称:Worker_46   读取次数:190
线程名称:Worker_69   读取次数:191
线程名称:Worker_09   读取次数:192
线程名称:Worker_67   读取次数:193
线程名称:Worker_43   读取次数:194
线程名称:Worker_98   读取次数:195
线程名称:Worker_30   读取次数:196
线程名称:Worker_10   读取次数:197
线程名称:Worker_45   读取次数:198
线程名称:Worker_93   读取次数:199
线程名称:Worker_44   读取次数:200
线程名称:Worker_95   读取次数:201
线程名称:Worker_49   读取次数:202
线程名称:Worker_20   读取次数:203
线程名称:Worker_74   读取次数:204
线程名称:Worker_17   读取次数:205
线程名称:Worker_38   读取次数:206
线程名称:Worker_77   读取次数:207
线程名称:Worker_65   读取次数:208
线程名称:Worker_01   读取次数:209
线程名称:Worker_31   读取次数:210
线程名称:Worker_73   读取次数:211
线程名称:Worker_96   读取次数:212
线程名称:Worker_87   读取次数:213
线程名称:Worker_03   读取次数:214
线程名称:Worker_52   读取次数:215
线程名称:Worker_19   读取次数:216
线程名称:Worker_14   读取次数:217
线程名称:Worker_86   读取次数:218
线程名称:Worker_64   读取次数:219
线程名称:Worker_24   读取次数:220
线程名称:Worker_56   读取次数:221
线程名称:Worker_00   读取次数:222
线程名称:Worker_23   读取次数:223
线程名称:Worker_53   读取次数:224
线程名称:Worker_39   读取次数:225
线程名称:Worker_84   读取次数:226
线程名称:Worker_04   读取次数:227
线程名称:Worker_22   读取次数:228
线程名称:Worker_66   读取次数:229
线程名称:Worker_16   读取次数:230
线程名称:Worker_40   读取次数:231
线程名称:Worker_14   读取次数:232
线程名称:Worker_87   读取次数:233
线程名称:Worker_63   读取次数:234
线程名称:Worker_81   读取次数:235
线程名称:Worker_56   读取次数:236
线程名称:Worker_23   读取次数:237
线程名称:Worker_02   读取次数:238
线程名称:Worker_52   读取次数:239
线程名称:Worker_65   读取次数:240
线程名称:Worker_30   读取次数:241
线程名称:Worker_73   读取次数:242
线程名称:Worker_95   读取次数:243
线程名称:Worker_62   读取次数:244
线程名称:Worker_01   读取次数:245
线程名称:Worker_83   读取次数:246
线程名称:Worker_06   读取次数:247
线程名称:Worker_46   读取次数:248
线程名称:Worker_09   读取次数:249
线程名称:Worker_45   读取次数:250
线程名称:Worker_70   读取次数:251
线程名称:Worker_26   读取次数:252
线程名称:Worker_54   读取次数:253
线程名称:Worker_60   读取次数:254
线程名称:Worker_51   读取次数:255
线程名称:Worker_20   读取次数:256
线程名称:Worker_25   读取次数:257
线程名称:Worker_03   读取次数:258
线程名称:Worker_68   读取次数:259
线程名称:Worker_58   读取次数:260
线程名称:Worker_47   读取次数:261
线程名称:Worker_13   读取次数:262
线程名称:Worker_17   读取次数:263
线程名称:Worker_16   读取次数:264
线程名称:Worker_41   读取次数:265
线程名称:Worker_40   读取次数:266
线程名称:Worker_59   读取次数:267
线程名称:Worker_23   读取次数:268
线程名称:Worker_35   读取次数:269
线程名称:Worker_69   读取次数:270
线程名称:Worker_48   读取次数:271
线程名称:Worker_56   读取次数:272
线程名称:Worker_63   读取次数:273
线程名称:Worker_29   读取次数:274
线程名称:Worker_57   读取次数:275
线程名称:Worker_02   读取次数:276
线程名称:Worker_05   读取次数:277
线程名称:Worker_06   读取次数:278
线程名称:Worker_38   读取次数:279
线程名称:Worker_92   读取次数:280
线程名称:Worker_80   读取次数:281
线程名称:Worker_45   读取次数:282
线程名称:Worker_18   读取次数:283
线程名称:Worker_98   读取次数:284
线程名称:Worker_39   读取次数:285Process finished with exit code -1

Python多线程技术增加网站帖子的查看量相关推荐

  1. 为什么在Python里推荐使用多进程而不是多线程?(为什么python多线程无法增加CPU使用率?)...

    最近在看Python的多线程,经常我们会听到老手说:"Python下多线程是鸡肋,推荐使用多进程!",但是为什么这么说呢? 要知其然,更要知其所以然.所以有了下面的深入研究: 首先 ...

  2. 如何增加网站的百度收录量?

    有个企业建站7年之久,而且建站之后公司自己从来没有打理过,只是交给建站公司打理,由于没有签订优化协议,所以优化方面一直是无人问津,内容虽有更新,但也不是很频繁,经过站长工具查询收录量,只有首页被收录, ...

  3. Python多线程爬取小说网站小说

    问题阐述 爬取网站小说,这里我们以努努书坊中爬取刘慈欣的小说球状闪电为例子! 技术支持 python多线程 request+beautifulSoup解析网页 代码演示[直接粘贴即可运行] impor ...

  4. 【记录】python多线程的使用 线程同步(LOCK和RLOCK) python与mysql数据库交互实现增加和查找 python的格式化输出

    文章目录 多线程: _thread模块 threading模块: 线程同步(LOCK和RLOCK) 和mysql交互: 附:python的格式化输出 附录 多线程: _thread模块 例一 impo ...

  5. python爬虫第二弹-多线程爬取网站歌曲

    python爬虫第二弹-多线程爬取网站歌曲 一.简介 二.使用的环境 三.网页解析 1.获取网页的最大页数 2.获取每一页的url形式 3.获取每首歌曲的相关信息 4.获取下载的链接 四.代码实现 一 ...

  6. python 搜索引擎 词位置加权_「seo基础」关键词推广:如何增加网站内容相关

    如何增加网站内容相关性,很多SEO常常会听到圈内人士大夫强调网站内容相关性.网站垂直等之类的言词,网站内容相关性高低也是决定关键词排名重要的环境因素之一,很多小鸟也问过大宝什么是网站内容相关性,如何提 ...

  7. linux查看python线程,Python多线程详解

    线程概念: 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.线程 ...

  8. python技术简介_Python多线程技术简介,简单,阐述,python

    python多线程 python中创建多线程方法有两种,这里只介绍简单的一种: from threading import Thread #导入模块 import time def test(thre ...

  9. python 线程等待_详解python多线程之间的同步(一)

    引言: 线程之间经常需要协同工作,通过某种技术,让一个线程访问某些数据时,其它线程不能访问这些数据,直到该线程完成对数据的操作.这些技术包括临界区(Critical Section),互斥量(Mute ...

最新文章

  1. 通过jquery的serializearray处理表单数据成json格式,并提交到后台处理
  2. mysql 导入导出 csv_mysql 导出导入数据 -csv
  3. SQLyog连接虚拟机中docker中的mysql过程详解,并解决2003错误
  4. python新人一月工资_python【项目】:工资管理(简易版)
  5. ThreadLocal类与Synchonized对象锁的区别
  6. 如何制作出让女朋友满意的大片
  7. 再见丑陋的 Swagger,这个API神器界面更炫酷,逼格更高,体验更好!
  8. mysql 严格模式查看,如何查找和禁用MySQL严格模式?
  9. Tarjan缩点/边双/点双
  10. 如何从菜鸟成长为高手!
  11. GitHub 企业服务器被曝高危 RCE 漏洞
  12. angular input_更快的Angular应用程序
  13. HBuilder的app自动更新
  14. transformer机制讲解_Transformer在视觉领域的应用
  15. SQL Server 不允许保存更改。您所做的更改要求删除并重新创建一下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项
  16. 基于模板匹配的螺母检测(计算机视觉实验)
  17. 多伦多大学计算机ib成绩要求,IB学生要考多少分才能进入世界一流名校就读?这里有份IB要求一览表请收好!...
  18. mysql 特殊符号_mysql 特殊字符问题
  19. 设计模式之禅【状态模式】
  20. U3d之物理引擎(上)

热门文章

  1. Linux 访问权限
  2. 成都Uber优步司机奖励政策(4月8日)
  3. Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接)
  4. ANSYS FLEXlm License Manager的卸载方法
  5. apktool+dex2jar+jd_gui
  6. 用汇编实现add函数
  7. 输入密码查看flag(详解)——Bugku
  8. [摘抄] Bezier曲线、B样条和NURBS
  9. ScrollViewer滚动究竟来触发载入数据的Behavior
  10. 使用RawSocket进行网络抓包