python多进程和多线程同时使用 (python多线程多进程爬虫)

python多进程与多线程,python多进程和多线程同时使用

python多进程与多线程,python多进程和多线程同时使用

python多进程与多线程,python多进程和多线程同时使用

1)APP安装的越来越多,手机或者电脑

等终端设备的质量会发生变化吗?

E=mc^2

ipython3(python3):

1/3

0.3333333333333333

0.3333333333333333*3

2)什么是程序?

一个程序就是存放到磁盘上的文件,由0和1组成;

静态的概念

3)什么是进程?

一个程序运行起来,我们就称作一个进程;

动态的概念

进程的特点:

动态性

独立性 想想各部门的类比;

并发性

结构性

进程的结构:

进程包含:

PCB(Process Control Block):

1)pid, pname;

2)进程的调度信息(进程状态信息,优先级);

进程状态信息:

****五态:新建;就绪;执行;等待/阻塞;终止;

优先级:在操作系统中可以用数字来表示

在Ubuntu中,优先级-20--19之间, 数值越小优先级越高,

-20最高;

在Windows中,优先级0-31之间;数值越大优先级越高,

31最高;

3)进程控制信息:

进程的资源(CPU,内存,磁盘)等等;

4)处理机的信息(指令计数器,通用寄存器)等等;

查看信息的方法:

Windows下资源管理器;

Ubuntu:

ps aux 进程快照;

top 类似于资源管理器(动态);q退出

htop

数据段;

代码段;

#char password[80];

#if(yourPass == password)

程序与进程的关系:

一对一;

一对多;

多对一;

多对多;

以上都不是;

4)类比一些多进程多线程中的概念:

OS(Operating system)操作系统: 公司;

CPU(中央处理器),I/O(输入输出): 公司某些资源;

单核CPU

进程:公司的部门;

线程:公司的人,干活的实体;

锁: 厕所里的锁;健身房,餐厅的锁;

思考: 程序可以类比成什么?

多任务系统:多个事情需要执行;

多用户:

并发: 单核是分时占用CPU等资源,

事实上某一个时刻只有进程在执行;

并行: 多核是真正的多个进程并行执行;

----------问题-----------------

1)1+1/2+1/4+...+1/2^n = 2

2-2*(1/2)^n

2)1+1/2+1/3+...+1/n -> 无穷大

我们学会了编程,要知道怎么用计算机工具,

工程化的思想超越我们的直觉。

阻塞与非阻塞:

阻塞: 资源被占用,死等;

非阻塞: 资源被占用,不等待,做其他事情;

几类进程:

父子关系;

兄弟关系;

销售部门:总部,1部,2部;

1)**孤儿进程:父进程挂了,子进程还在;

2)****僵尸进程:子进程挂了,父进程还在,

父进程没有给子进程善后;

****慎用或不用terminate;

3)****守护进程:

在后台运行的程序,跟着父进程一起消失的进程,

这种进程可以随时死亡;

如果我们的子进程要处理某些状态,操作I/O,

建议不要设置成daemon进程,因为它可能随时死亡;

****multiprocessing包:

Process:

Process(target=函数名, args=(参数元组))

start()

#terminate() 慎用或不用

daemon 守护进程可以在

join()

后台在一些辅助性的事;

****主进程对子进程join的话,

子进程的daemon就会失效;

daemon设置在start之后是无效的;

默认情况下multiprocessing中主进程

会等待子进程,显示等待某个进程,可以使用join;

****multiprocessingTimer.py

-----------作业-----------

1) 实现一个定时器,每隔半小时提示你休息一下眼睛;

面向对象的方式来实现;

实现自己的Process类,重写run方法;