随笔分类 -  0.13--网络编程进阶&数据库开发

上一页 1 2
并发编程-单元练习题
摘要:1、简述计算机操作系统中的“中断”的作用? 2、简述计算机内存中的“内核态”和“用户态”; 3、什么是进程、线程、协程、多线程和多进程、线程池和进程池 4、请简述你对join、daemon方法的理解,举出它们在生产环境中的使用场景; 4、threading中Lock和RLock的相同点和不同点; 3 阅读全文
posted @ 2018-10-03 16:50 foremost 阅读(243) 评论(0) 推荐(0)
15 并发编程-(IO模型)
摘要:一、IO模型介绍 1、阻塞与非阻塞指的是程序的两种运行状态 阻塞:遇到IO就发生阻塞,程序一旦遇到阻塞操作就会停在原地,并且立刻释放CPU资源 非阻塞(就绪态或运行态):没有遇到IO操作,或者通过某种手段让程序即便是遇到IO操作也不会停在原地,执行其他操作,力求尽可能多的占有CPU 2、同步与异步指 阅读全文
posted @ 2018-10-02 21:06 foremost 阅读(184) 评论(0) 推荐(0)
14 并发编程-(协程)-greenlet模块&gevent模块
摘要:1、实现多个任务之间进行切换,yield、greenlet都没有实现检测I/O,greenlet在实现多任务切换下更简单 2、一个协程遇到IO操作自动切换到其它协程(如何实现检测IO,yield、greenlet都无法实现,就用到了gevent模块(select机制)) 2.1 gevent模块 可 阅读全文
posted @ 2018-10-02 15:18 foremost 阅读(191) 评论(0) 推荐(0)
13 并发编程-(协程)-协程的基本概念
摘要:1、协程 --引子 进程的三种状态: 运行、阻塞、就绪 ps:在介绍进程理论时,提及进程的三种执行状态,而线程才是执行单位,所以也可以将上图理解为线程的三种状态 import time # 串行执行 def consumer(res): pass def producer(): res = [] f 阅读全文
posted @ 2018-10-02 12:02 foremost 阅读(196) 评论(0) 推荐(0)
13 并发编程-(线程)-异步调用与回调机制&进程池线程池小练习
摘要:一、提交任务的两种方式 1、同步调用:提交任务后,就在原地等待任务完毕,拿到结果,再执行下一行代码,导致程序串行执行 2、回调函数--异步调用:提交完任务后,不用原地等待任务执行完毕, from concurrent.futures import ThreadPoolExecutor import 阅读全文
posted @ 2018-10-01 20:24 foremost 阅读(228) 评论(0) 推荐(0)
12 并发编程-(线程)-线程queue&进程池与线程池
摘要:1、class queue.Queue(maxsize=0) #队列:先进先出 2、class queue.LifoQueue(maxsize=0) #堆栈:last in fisrt out 3、class queue.PriorityQueue(maxsize=0) #优先级队列:存储数据时可设 阅读全文
posted @ 2018-10-01 16:24 foremost 阅读(310) 评论(0) 推荐(0)
11 并发编程-(线程)-信号量&Event&定时器
摘要:1、信号量(本质也是一把锁)Semaphore模块 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行, 信号量同一时间可以有5个任务拿到锁去执行, 如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路人争抢公共厕所,公共厕所有多个坑位, 这意味着同一时间 阅读全文
posted @ 2018-10-01 12:06 foremost 阅读(192) 评论(0) 推荐(0)
10 并发编程-(线程)-GIL全局解释器锁&死锁与递归锁
摘要:一、GIL全局解释器锁 1、引子 在Cpython解释器中,同一个进程下开启的多线程,同一时刻只能有一个线程执行,无法利用多核优势 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。 就好比C++是一套语言(语法)标准,但是可以用不 阅读全文
posted @ 2018-10-01 12:03 foremost 阅读(251) 评论(0) 推荐(0)
9 并发编程-(线程)-守护线程&互斥锁
摘要:一 、守护线程 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 详细解释: 1、主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收), 然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源(否则会产生僵尸进程),才会结束, 阅读全文
posted @ 2018-09-30 21:10 foremost 阅读(143) 评论(0) 推荐(0)
8 并发编程-(线程)-多线程与多进程的区别&Thread对象的其他属性或方法
摘要:1、开启速度 在主进程下开启线程比 开启子进程快 2、pid 对比:在主进程下开启多个线程(进程和线程pid相同);在主进程下开启子进程(pid不相同) 3、同一进程内的线程共享该进程的数据(进程之间的地址是隔离的;同一进程内的线程共享该进程的地址空间) 4、Thread对象的其他属性或方法 主线程 阅读全文
posted @ 2018-09-30 20:05 foremost 阅读(225) 评论(0) 推荐(0)
7 并发编程-(线程)-开启线程的两种方式
摘要:thread/英 /θred/ 美 /θrɛd/ 线程 1、threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 2、开启线程的两种方式 2.1、方式一 2.2、方式二 必须有 run函数 3、练习题 3. 阅读全文
posted @ 2018-09-30 17:13 foremost 阅读(182) 评论(0) 推荐(0)
6 并发编程-(线程)-线程的基本理论
摘要:1、什么是线程 车间(进程) 流水线(线程) 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于cpu),而一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责把资源整合到一起,是一个资源单位, 阅读全文
posted @ 2018-09-30 16:19 foremost 阅读(252) 评论(0) 推荐(0)
5 并发编程-(进程)-队列&生产者消费者模型
摘要:1、队列的介绍 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现): Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Q 阅读全文
posted @ 2018-09-30 15:05 foremost 阅读(416) 评论(0) 推荐(0)
4 并发编程-(进程)-守护进程&互斥锁
摘要:一、守护进程 主进程创建子进程,然后将该进程设置成守护自己的进程,守护进程就好比崇祯皇帝身边的老太监,崇祯皇帝已死老太监就跟着殉葬了。 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemo 阅读全文
posted @ 2018-09-30 12:09 foremost 阅读(278) 评论(0) 推荐(0)
3 并发编程-(进程)-join方法
摘要:1、查看当前进程的进程号getpid() 和 其父 进程号 getppid() window下: 2、Process对象的join方法 p.join主线程等待P终止(主线程处于等待的状态,而p处于运行的状态) 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程 阅读全文
posted @ 2018-09-29 22:28 foremost 阅读(406) 评论(0) 推荐(0)
2 并发编程--开启进程的两种方式
摘要:multiprocessing 英 /mʌltɪ'prəʊsesɪŋ/ n. [计][通信] 多重处理 1、multiprocessing 模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使 阅读全文
posted @ 2018-09-28 16:11 foremost 阅读(199) 评论(0) 推荐(0)
1 并发编程--进程理论
摘要:1、什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 2、进程与程序的区别 程序仅仅是一堆代码而已,而进程指的是程序的运行过程 需要强调的是:同一个程序执行两次,那也是两个进程,比如打开暴风影音,虽然都是同一个软件,但是一个可以播放苍井空,一个可以播放饭岛爱。 3、并发 阅读全文
posted @ 2018-09-28 15:15 foremost 阅读(206) 评论(0) 推荐(0)
0 并发编程--操作系统的发展史与多道技术
摘要:必备的理论基础: 一、操作系统发展史及多道技术 1.第一代计算机(1940~1955):真空管和穿孔卡片 特点:没有操作系统的概念,所有的程序设计都是直接操控硬件。 优点:程序员在申请的时间段内独享整个资源,可以即时地调试自己的程序。 缺点:浪费计算机资源,一个时间段内只有一个人用。 2.第二代就算 阅读全文
posted @ 2018-09-27 21:28 foremost 阅读(208) 评论(0) 推荐(0)

上一页 1 2