摘要:
'''网络架构: C/S架构:client --> server 用户需要下载客户端才能访问服务器 B/S架构:Browser --> serverOSI七层模型 应用层:为应用程序提供网络服务 数据层:数据格式化、加密、解密 会话层:建立、维护、管理会话连接 传输层:建立、委会、管理端到端连接 网 阅读全文
posted @ 2021-06-03 23:47
zzwYYYYYY
阅读(42)
评论(0)
推荐(0)
摘要:
信号量Semaphore 信号量再不同的阶段可能对应不同的技术点 在并发编程中信号量指的是锁!!! """ 如果我们将互斥锁比喻成一个厕所的话 那么信号量就当于多个厕所 """ Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器-1; 调用release() 时内置计数 阅读全文
posted @ 2021-06-03 23:46
zzwYYYYYY
阅读(46)
评论(0)
推荐(0)
摘要:
死锁现象与递归锁 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 解决死锁的方法就是递归锁 解决方法,递归锁,在Python中 阅读全文
posted @ 2021-06-03 21:37
zzwYYYYYY
阅读(171)
评论(0)
推荐(0)
摘要:
同进程下多线程无法利用多核优势 """ 多线程是否有用要看具体情况 单核:四个任务(IO密集型\计算密集型) 多核:四个任务(IO密集型\计算密集型) """ # 计算密集型 每个任务都需要10s 单核 开多线程 多核 多进程:总耗时10s+ 多线程:总耗时40s+ # IO密集型 多核 多进程:相 阅读全文
posted @ 2021-06-03 21:36
zzwYYYYYY
阅读(165)
评论(0)
推荐(0)
摘要:
GIL全局解释器锁 """ 重点: 1.GIL不是Python的特点而是CPython解释器的特点 2.GIL是保证解释器级别的数据的安全 3.GIL会导致同一个进程下的多个线程的无法同时执行 4.针对不同的数据还是需要加不同的锁处理 5.解释型语言的通病:同一个进程下多个线程无法利用多核优势 "" 阅读全文
posted @ 2021-06-03 21:34
zzwYYYYYY
阅读(47)
评论(0)
推荐(0)
摘要:
互斥锁 如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性,需要对多个线程进行同步。 使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以 阅读全文
posted @ 2021-06-03 21:20
zzwYYYYYY
阅读(143)
评论(0)
推荐(0)
摘要:
同进程下子线程数据共享 总结: 同进程下子线程数据共享全局变量 同进程下子线程数据无法共享局部变量 # 验证同进程下子线程间数据共享 from threading import Thread a = 100 def func(): global a #局部修改全局 a = 200 b = 0 b + 阅读全文
posted @ 2021-06-03 20:53
zzwYYYYYY
阅读(109)
评论(0)
推荐(0)
摘要:
守护线程 守护线程就是随着主线程的开始而开始、结束而结束。 #1.对主进程来说,运行完毕指的是主进程代码运行完毕 #2.对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕 案例 from threading import Thread def zzw(nam 阅读全文
posted @ 2021-06-03 20:39
zzwYYYYYY
阅读(98)
评论(0)
推荐(0)
摘要:
实现TCP服务器并发 服务器 import socket from multiprocessing import Process from threading import Thread # 1.创建一个TCP socket链接 s = socket.socket(socket.AF_INET, s 阅读全文
posted @ 2021-06-03 19:15
zzwYYYYYY
阅读(113)
评论(0)
推荐(0)
摘要:
Threading模块 一、Thread类 语法: from threading import Thread def func(): pass ''' 开启线程不需要再main下执行代码,直接书写即可 但是出于良好的编码习惯,我们还是将启动命令下载main下 ''' if __name__ == ' 阅读全文
posted @ 2021-06-03 19:09
zzwYYYYYY
阅读(147)
评论(0)
推荐(0)
摘要:
开启线程的两种方式 Python中使用线程有两种方式:函数或者用类来包装线程对象 一、函数方式 函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下: _thread.start_new_thread ( function, args[, kwargs 阅读全文
posted @ 2021-06-03 18:27
zzwYYYYYY
阅读(560)
评论(0)
推荐(0)
摘要:
互斥锁 互斥锁为资源引入一个状态:锁定/非锁定 某个线程要更改共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将资源的状态变为“非锁定”,其他的线程才能够再次锁定该资源。互斥锁保证了每次只有一个线程进行写入操作,从而保证了多线程情况下数据的正确性 ''' 多个 阅读全文
posted @ 2021-06-03 17:41
zzwYYYYYY
阅读(96)
评论(0)
推荐(0)
摘要:
守护进程 守护进程就是随着主进程的开始而开始、结束而结束。 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have chil 阅读全文
posted @ 2021-06-03 17:06
zzwYYYYYY
阅读(56)
评论(0)
推荐(0)
摘要:
孤儿进程 ''' 二:孤儿进程(无害) 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 孤儿进程是没有父进程的进程,孤儿进程这个重任就落到了init进程身上,init进程就 阅读全文
posted @ 2021-06-03 16:35
zzwYYYYYY
阅读(131)
评论(0)
推荐(0)
摘要:
僵尸进程 ''' 一:僵尸进程(有害) 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符(占用的pid、运行时间)仍然保存在系统中。这种进程称之为僵尸进程。详解如下 我们知道在unix/linux中,正常 阅读全文
posted @ 2021-06-03 15:30
zzwYYYYYY
阅读(213)
评论(0)
推荐(0)
摘要:
进程间通信 进程间是相互隔离的,这体现在内存空间上的隔离 不同进程各自保存一份全局变量,不会共享全局变量 # 验证进程间是相互隔离的 from multiprocessing import Process a = 100 def func(): global a #局部修改全局 a = 200 pr 阅读全文
posted @ 2021-06-03 14:50
zzwYYYYYY
阅读(104)
评论(0)
推荐(0)
摘要:
multiprocessing模块 1、Process类 创建一个进程对象,可是使用该进程对象进行对进程的各种操作,如:创建进程、判断进程、阻塞主进程、终止子进程等 语法: from multiprocessing import Process ''' 注意: 在windows中,创建进程的代码必须 阅读全文
posted @ 2021-06-03 14:31
zzwYYYYYY
阅读(113)
评论(0)
推荐(0)
摘要:
创建进程的两种方式 代码开启进程和线程的方式,书写语法基本一致 1、使用multiprocessing模块 from multiprocessing import Process import time def task(name): print('{} is running'.format(nam 阅读全文
posted @ 2021-06-03 14:06
zzwYYYYYY
阅读(712)
评论(0)
推荐(0)
摘要:
线程理论 致命三问 什么是线程 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 ''' 进程:资源单位 线程:执行单位 将操作系统比喻成一个打的工厂 那么进程就相当于工厂里面的车间 而线程就是车间里面的流水线 每一个进程坑定自带一个线程 再次总结 阅读全文
posted @ 2021-06-03 00:28
zzwYYYYYY
阅读(59)
评论(0)
推荐(0)
摘要:
进程理论 1、前置知识 程序与进程的区别 ''' 程序就是一堆存储在硬盘上的代码,是‘死’的 进程则表示程序正在执行的过程,是‘活’的 ''' 2、进程调度 要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随即进行的,而是需要遵循一定的法则,由此就有了进程的调度算法。 2.1 先 阅读全文
posted @ 2021-06-03 00:26
zzwYYYYYY
阅读(167)
评论(0)
推荐(0)
摘要:
操作系统的作用 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。 一般而言,现代计算机系统是一个复杂的系统。 其一:如果每位应用程序员都必须掌握该系统所有的细节,那就不可能再编写代码了(严重影响了程序员的开发效率:全部掌握这些细节可 阅读全文
posted @ 2021-06-03 00:24
zzwYYYYYY
阅读(1276)
评论(0)
推荐(0)
摘要:
操作系统的进一步发展 进入20世纪80年代,大规模集成电路工艺技术的飞跃发展,微处理机的出现和发展,掀起了计算机大发展大普及的浪潮。一方面迎来了个人计算机的时代,同时又向计算机网络、分布式处理、巨型计算机和智能化方向发展。于是,操作系统有了进一步的发展,如:个人计算机操作系统、网络操作系统、分布式操 阅读全文
posted @ 2021-06-03 00:23
zzwYYYYYY
阅读(134)
评论(0)
推荐(0)
摘要:
通用操作系统 操作系统的三种基本类型:多道批处理系统、分时系统、实时系统。 通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。 例如:实时处理+批处理=实时批处理系统。首先保证优先处理实时任务,插空进行批处理作业。常把实时任务称为前台作 阅读全文
posted @ 2021-06-03 00:21
zzwYYYYYY
阅读(681)
评论(0)
推荐(0)
摘要:
实时系统 虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用领域的需求。于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。 实时系统在一个特定的应用中常作为一种控制设备来使用。 实时系统 阅读全文
posted @ 2021-06-03 00:20
zzwYYYYYY
阅读(1224)
评论(0)
推荐(0)
摘要:
分时系统 由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好象自己独占机器一样。 分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。 若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断 阅读全文
posted @ 2021-06-03 00:18
zzwYYYYYY
阅读(2579)
评论(0)
推荐(0)
摘要:
多道程序系统 3.1 前置知识 并发:是伪并行,即看起来是同时运行就是并发。单个cpu+多道技术就可以实现并发,(并行也属于并发) 并行:真正意义的同时运行 PS: 1. 并行肯定可以算作并发 2. 单核的计算机肯定不能实现并行,但是可以实现并发! 补充:我们假设单核就是一个核的CPU,同一时间只能 阅读全文
posted @ 2021-06-03 00:15
zzwYYYYYY
阅读(2552)
评论(0)
推荐(0)
摘要:
批处理-磁带存储 批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令) 2.1 联机批处理 首先出现的是联机批处理系统,即作业的输入/输出由CPU来处理。 主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督 阅读全文
posted @ 2021-06-03 00:12
zzwYYYYYY
阅读(464)
评论(0)
推荐(0)
摘要:
手工操作-穿孔卡片 早期计算机还没有操作系统的概念,整个计算机由输入设备、输出设备、CPU共同构建。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或 阅读全文
posted @ 2021-06-03 00:09
zzwYYYYYY
阅读(528)
评论(0)
推荐(0)
摘要:
'''os模块 目录操作 .removedirs(dirname) .makedirs(dirname) .mkdir(dirname) .rmdir(dirname) .chdir(dirname) .listdir(dirname) 属性 .environ .name .sep .linesep 阅读全文
posted @ 2021-06-03 00:02
zzwYYYYYY
阅读(56)
评论(0)
推荐(0)

浙公网安备 33010602011771号