Xing>Xing

博客园 首页 新随笔 联系 订阅 管理

近期安排:

   并发编程

   操作系统理论

   进程

   线程

   协程

   IO多路复用

今天内容:

   计算机的硬件组成

       主板       固化(寄存器,是直接和cpu进行交互的一个硬件)

       CPU        中央处理器:计算(数字计算和逻辑计算)和控制(控制所有硬件协调工作)       

  存储       硬盘,内存

       输入设备   键盘,鼠标,话筒

       输出设备   显示器,音箱,打印机

   早期的计算机是以计算为核心的

   现在的计算机是以存储为核心的

   第一代计算机:电子管计算机,及其耗电,体积庞大,散热量特别高

   第二代计算机:晶体管计算机,

   第三代计算机:白色大头计算机,集成电路计算机,一个板子固化几十到上百个小硬件   

   第四代计算机:大型集成电路计算机,一个板子可以达到固化十万个硬件

   第五代计算机:甚大型集成电路计算机

   计算机的操作系统

       操作系统是一个软件,是一个能直接操纵硬件的一个软件。

       微软研发的windows操作系统。

   计算机刚开始使用的时候,还没有操作系统

   人工时代:穿孔卡带

       每个人都能自己在一段时间内独享计算机所有资源

   脱机时代: 完全将人和机器隔离开来

   单道批处理系统:内存中只允许存放一道作业

   多道批处理系统:内存中允许存放多道作业

   分时系统: 将cpu的执行划分时间片,每个程序以时间片为单位去执行

   实时系统: 一般比较少见,主要用于军事和工业生产上。

   无论什么时候,操作系统的目标总是:让用户用起来更加的轻松。高可用,低耦合

语言的发展史:

    计算机识别的是二进制,机器语言,由1 和 0组成代码

                          汇编语言,  add n,m      move  n,m

                          高级语言:面向过程语言(C),面向对象语言(C++,JAVA,python,.net,php)

OS:

  dos系统       纯编程系统    单用户单?

  windows系统

  unix系统

操作系统的作用:

   1,封装所有硬件接口,让各种用户使用电脑更加轻松

   2,是对计算机内所有资源进行合理的调度和分配

  问题

    用户写一个程序,如何让cpu帮你执行,中间经过了哪些步骤?

 

   3 进程的理论

   .sh   shell脚本文件

   .out  linux系统中的可执行文件

   .bat  批处理脚本文件

   .lib  库文件

   .dll  库

   .exe  可执行文件   双击能运行的文件

     进程:

       是指正在执行的程序。

       是程序执行过程中的一次 指令,数据集等的集合。

       也可以叫做程序的一次执行过程。

       进程是一个动态的概念。

     进程由三大部分组成:代码段,数据段,PCB:进程管理控制

     进程的三大基本状态:

        就绪状态:已经获得运行需要的所有资源,除了CPU

        执行状态:已经获得了所有资源包括cpu,处于正在运行

        阻塞状态:因为各种原因,进程放弃了cpu,导致进程无法继续执行,此时进程处于内存中,继续等待获取cpu

     进程的一个特殊状态:

        挂起状态:是指因为种原因,进程放弃了cpu,导致进程无法继续执行,此时进程被踢出内存。

     multiprocessing内置模块,是python提供,主要用于多进程编程

 

 

 

 

 

from bs4 import BeautifulSoup
import requests
import time
from multiprocessing import Process

headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0'
}

def get_url(url):
    res = requests.get(url)
    li = []
    if res.status_code == 200:
        soup = BeautifulSoup(res.text,'html.parser')
        re = soup.find('div',class_='beautiful_pictures_show').find_all('li')
        for i in re:
            s = i.find('img').get('src')
            li.append(s)
    return li


def get_img(url):
    # url = 'http://pic.xiao4j.com/upload/meinv/2018_0816/144048869.jpg_270_410.jpg'
    # s = url.split('/')[-1].split('_')[0]
    # print(s)
    r = requests.get(url)
    if r.status_code == 200:
        print()
        with open(url.split('/')[-1].split('_')[0],'wb') as f:
            f.write(r.content)

if __name__ == '__main__':
    url = 'http://www.xiao4j.com/beauty/index.html'
    img_url = get_url(url)
    start = time.time()
    p_l = []
    for i in img_url:
        # get_img(i)
        p = Process(target=get_img,args=(i,))
        p.start()
        p_l.append(p)

    [i.join() for i in p_l]
    print(time.time() - start)
爬图

 

posted on 2018-08-17 16:24  Xing>Xing  阅读(110)  评论(0)    收藏  举报