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

2.什么是进程?
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。里面包含对各种资源的调用,内存的管理,网络接口的调用等。。。对各种资源管理的集合 就可以称为 进程
3.线程和进程的区别
(1)线程共享内存空间;进程的内存是独立的
(2)同一个进程的线程之间可以直接交流;两个进程想通信,必须通过一个中间代理来实现
(3)创建新线程很简单; 创建新进程需要对其父进程进行一次克隆
(4)一个线程可以控制和操作同一进程里的其他线程;但是进程只能操作子进程
(5)改变主线程(如优先权),可能会影响其它线程;改变父进程,不影响子进程

from lxml import etree
import requests
from urllib import parsedef page_download(url_href):trace_id = url_href.split('/')[-1]url = 'https://www.ximalaya.com/revision/play/tracks?trackIds='+str(trace_id)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'}response = requests.get(url, headers=headers)json_dict = response.json()src_str = json_dict['data']['tracksForAudioPlay'][0]['src']trackName = json_dict['data']['tracksForAudioPlay'][0]['trackName']from urllib import requestrequest.urlretrieve(src_str, 'yishuochunqiu/'+trackName + '.m4a')print(src_str,trackName)
def get_url(queue):for i in range(1,22):url_base = 'https://www.ximalaya.com/lishi/4164479/p%s/'%iheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'}response = requests.get(url_base, headers=headers)html_str = response.text# with open('yishuo.html', 'wb') as f:#     f.write(response.content)html_ele = etree.HTML(html_str)href_list = html_ele.xpath('//ul[@class="dOi2"]/li/div[2]/a/@href')for href in href_list:detail_url = parse.urljoin(url_base, href)# page_download(detail_url)queue.put(detail_url)if __name__ == '__main__':from multiprocessing import Process,Queue,Poolq = Queue()p = Process(target=get_url,args=(q,))p.start()download_pool = Pool(5)for m in range(1,20):mp3_url = q.get()download_pool.apply_async(page_download,args=(mp3_url,))download_pool.close()download_pool.join()p.join()

进程与线程的区别 附加爬取喜马拉雅有声书代码相关推荐

  1. Python爬取喜马拉雅有声小说【转载】

    话不多说 直接上源码 爬取喜马拉雅有声小说-夜惊魂 import re import os import json import requests def Night_fright(): start_ ...

  2. python爬取喜马拉雅有声小说

    以绝世高手为例,爬取前三页的所有音频 采集地址:https://www.ximalaya.com/youshengshu/16411402/ 思路只有两个:获取一级页面.获取二级页面 先一步二步看一下 ...

  3. python爬取有声小说_听说还有付费听书的朋友,用python带你爬取喜马拉雅有声小说...

    思路只有两个:获取一级页面.获取二级页面 先一步二步看一下代码: def get_mes(self): id_list = [] # 获取前三页的地址,range顾头不顾尾 for i in rang ...

  4. task.run 强制结束线程_图文介绍进程和线程的区别

    点击蓝色"最码农"关注我哟 加个"星标",每天下午18:03,一起学技术 进程和线程的概念 先了解一下操作系统的一些相关概念,大部分操作系统(如Windows. ...

  5. Interview:算法岗位面试—BAT公司问题面试之计算机基础(进程与线程的区别)、经典概率问题等集锦

    Interview:算法岗位面试-BAT公司问题面试之计算机基础(进程与线程的区别).经典概率问题等集锦 目录 计算机基础问题 1.进程与线程的区别 概率问题 1.貂蝉与西施回头率比美问题 计算机基础 ...

  6. 【面试问题】进程和线程的区别——通俗易懂

    1. "进程"是什么 1.2 管理进程 1.3 内存管理 1.4 进程间通信 2. 线程是什么 3.进程和线程的区别 1. "进程"是什么 在对比"进 ...

  7. 进程和线程的区别,进程间通信方式,怎么选择比较好

    此篇文章讲解比较多,面试记住原理特点应该差不多了 进程和线程的区别 进程 进程是资源分配的基本单位. 进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态 ...

  8. 进程和线程的区别和联系

    目录 线程 概念 存在意义 进程和线程的区别和联系 线程 概念 进程就是一个"执行流",按照某种顺序执行自己的代码. 存在意义 如今各种操作系统均能实现多进程同时执行,也就是支持并 ...

  9. Linux进程与线程的区别 详细总结(面试经验总结)

    首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...

最新文章

  1. cp 与 find结合用
  2. mysql常用语句和函数
  3. 定制jQuery File Upload为微博式单文件上传
  4. 使用Java将数据流式传输到HPCC
  5. 2020年前端招聘技术概览
  6. #化鲲为鹏,我有话说# 鲲鹏云服务器的使用小技巧之SSH(一)
  7. 沉迷Link-Cut tree无法自拔之:[BZOJ2594][Wc2006]水管局长数据加强版
  8. js 打印出来的节点多了m_前端实用技术分享—用Vue实现打印指定区域
  9. Jmeter ramp-up 参数含义 以及http请求测试流程零基础
  10. 教你用Python自制一张好看的指数估值图!这招很好用!
  11. bcc语料库下载_语料库汇总
  12. 2017-2018年终总结书
  13. win10安装opcenum_如何完美的解决win10安装时遇到的问题?
  14. pip 按照requirements.txt安装到对应的package名称的文件中
  15. Maya offline document
  16. Matplotlib文字处理
  17. RPM(软件包管理器)和YUM 软件仓库
  18. 苹果手机来电归属地_苹果手机来电铃声、充电音还能这么有趣?这款神器也太炫了...
  19. 【转】在win10接双显示器(扩展模式)怎么把鼠标游标切换到第二台显示器上?
  20. How to fix the global rice crisis 如何应对全球稻米危机 | 经济学人20230401版双语精翻

热门文章

  1. 5天破10亿的哪吒,为啥这么火,Python来分析!
  2. delimiter(delimiter)
  3. 蚂蚁京东新浪10位架构师424页佳作深入分布式缓存从原理到实践
  4. 高中学历可以学java么_初高中学历能学会Java吗,低学历能学Java吗?
  5. 强推一款谷歌新标签管理插件——infinity Pro!
  6. 快毕业的时候,研究生就业率还不到9%!全省最强的211大学就业率这么低?
  7. Visual Studio 2019安装中出现的问题(超详细)
  8. ZBlog建站个人经验
  9. 注会综合记忆锦囊:手绘PEST模型,记忆可以这样玩
  10. 内网渗透 | 信息收集