第一步先引用线程插件
[C#] 纯文本查看 复制代码 import _thread
我们这里直接设计一个可以同时开启多个线程,并传参数的方法
先来定义一个方法
[C#] 纯文本查看 复制代码 def getdata(i):
from urllib.request import urlopen
for item in range(1, 10):
myURL = urlopen("http://www.sufeinet.com/")
html = myURL.read(100)
print("线程 %d 第 %d 次循环输入内容:%s" % (i, item, html))
else:
print("循环结束")
这个方法的意思是执行10次方法网站-http://www.sufeinet.com/并输出前100个字符
下面我们同时开启4个线程来执行它
[C#] 纯文本查看 复制代码 try:
for i in range(1, 5):
time.sleep(1)
_thread.start_new_thread(getdata, (i,))
print("线程 %d 启动" % (i))
except:
print("Error: 无法启动线程")
while 1:
pass
先来看看效果
[C#] 纯文本查看 复制代码 D:\Users\sufei\PycharmProjects\pythonProject\venv\Scripts\python.exe d:/Users/sufei/PycharmProjects/pythonProject/main.py
线程 1 启动
线程 1 第 1 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 启动
线程 1 第 2 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 1 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 1 第 3 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 2 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 启动
线程 1 第 4 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 3 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 1 第 5 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 1 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 4 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 启动
线程 2 第 5 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 1 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 6 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 7 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 2 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 3 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 1 第 6 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 4 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 1 第 7 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 1 第 8 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 5 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 6 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 8 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 1 第 9 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
循环结束
线程 3 第 7 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 2 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 2 第 9 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
循环结束
线程 3 第 8 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 3 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 3 第 9 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
循环结束
线程 4 第 4 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 5 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 6 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 7 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 8 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
线程 4 第 9 次循环输入内容:b'\r\n\r\n<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <meta charset="UTF-8" />\r\n <meta content="widt'
循环结束
好,细节的我就不多说了,里面用到了一个try except方法,这个和c#里面的try catch差不多的意思
|