day33:进程II】的更多相关文章

目录 1.锁:Lock 2.信号量:Semaphone 3.事件:Event 4.进程队列:Queue 5.生产者和消费者模型 6.JoinableQueue 锁:Lock 1.锁的基本概念 上锁和解锁是一对,只上锁不解锁会发生死锁现象(代码阻塞,不往下执行了) 互斥锁 : 互斥锁是进程之间的互相排斥,谁先抢到这个锁资源就先使用,后抢到后使用 2.锁的基本用法 # 创建一把锁 lock = Lock() # 上锁 lock.acquire() # 连续上锁不解锁是死锁 lock.acquire(…
day33 进程创建的两种方式 在windows环境下,开启进程必须在______name______ == "______main______"下面 p.start(): 只是向操作系统发出一个开辟子进程的信号,然后就执行下一行了. 这个信号操作系统接收到之后,会从内存中开辟一个子进程空间,然后再将主进程所有数据copy加载到子进程,然后再调用cpu去执行 开辟子进程开销是狠大的,所以永远会先执行主进程的代码 开启进程的第一种方式 from multiprocessing impor…
进程池和线程池 开进程开线程都需要消耗资源,只不过两者比较的情况线程消耗的资源比较少 在计算机能够承受范围之内最大限度的利用计算机 什么是池? ​ 在保证计算机硬件安全的情况下最大限度地利用计算机 ​ 池其实是降低了程序的运行效率 但是保证了计算机硬件的安全 ​ (硬件的发展跟不上软件的速度) 线程池进程池 括号内可以传参数指定线程池内的线程个数 也可以不传 不传默认是当前cpu核数*5 ​ 提交任务的方式: 同步:提交任务之后,原地等待任务的结果,期间不做任何事 异步:提交任务后,不等待任务的…
I.进程: II.多线程threading总结 threading用于提供线程相关的操作,线程是应用系统中工作的最小单位(cpu调用的最小单位). Python当前版本的多线程没有实现优先级,线程组,线程也不能被停止,暂停,恢复,中断. threading模块提供的类: Thread,Lock,Rlock,Condition,Semaphore,Event,Timer,local. threading 模块提供的常用方法: threading.currentThread()  :返回当前的线程变…
ProcessStartInfo process = new ProcessStartInfo(); process.FileName = AppDomain.CurrentDomain.BaseDirectory + "CrystalReport\\" + "CrystalReport.exe"; process.WindowStyle = ProcessWindowStyle.Normal; Process[] ps = Process.GetProcesses…
一.Windows线程的由来  关于操作系统的一些知识 (1).单个"工作线程"的问题 早期的Windows没有线程的概念,整个系统只有一个"工作线程",上面同时跑着操作系统代码和应用程序代码.这种方式最大的缺点就是,一个应用程序运行时会霸占整台机器(应为只有一个工作线程),且当它发生死循环时,会造成PC停止工作.如果此时重启,更shit的是,所有的应用程序都会停止,且丢失数据. (2).Windows进程 i.什么是Windows进程,以及它解决的问题 MS为了解…
今日内容: 1.线程理论 2.锁: 牺牲了效率,保证了数据的安全(重点) 3.守护线程 4.GIL锁:(重点) 5.计算密集型和IO密集型 6.信号量,事件(了解) 7.补充. 子进程中不能input 1.线程理论 什么是线程:cpu的执行单位(实体) 进程: 资源分配单位线程的创建和销毁的开销特别小 线程之间的资源共享,共享的是同一个进程中的资源 资源的共享涉及的最主要的问题就是数据的安全问题,这里我们就要用到加锁来实现. 线程的2种创建方式方法1:from threading import…
一.multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程.python中提供了非常好的多进程包multiprocessing. multiprocessing模块用来开启子进程,并在子进程中执行功能(函数),该模块与多线程模块threading的编程接口类似. multiprocessing的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,提供了Process.Queue.Pipe.Lock等组件. 二.Process类…
UDP 什么是UDP协议 在上节课的练习中,使用TCP进行网络编程时,我们会遇到粘包问题,这是因为TCP是流式协议,而今天学习的UDP协议不是流式协议,其发送的数据是数据报格式的,在进行数据发送时该协议会自动加上报头及报尾,使每次发送的数据之间都是有间隔的,这样在进行接收时就会每次接收一条数据. 为什么会有UDP协议? 在使用TCP协议进行通讯时,由于TCP协议需要进行三次握手建连接,四次挥手断连接,这个过程虽然十分可靠,但是这个过程十分的繁琐,会影响数据之间的通讯效率,对于一些对于数据的可靠性…
在Linux中如何用kill终止进程: kill -l [root@localhost~]#kill -l   可以看到kill中有很多的 常用:  -1 是重启一个进程    -9 是强制杀死进程  -15 是标准终止进程也是默认选项不需要加 例如: 我们想要杀死apache的一个子进程: [root@localhost~]#ps aux | grep httpd    比如说我查看到我想要杀死的子进程是 22500 [root@localhost~]# kill -9 22500 当然我们想…