1 yandajiangjun

尚未进行身份认证

暂无相关简介

等级
TA的排名 14w+

进程、线程、协程对比与区别

进程、线程、协程对比请仔细理解如下的通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子)他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程这个老板为了提高生产率,想到3种办法...

2019-11-27 22:52:28

协程-greenlet,gevent

前面说过yield实现多任务,但是yield实现多任务,是通过主函数控制的,如果程序里有很多个函数,那么使用next()方法,就得一个一个的执行,所有的函数必须等待,灵活性不够。这里使用greenlet,就可以实现函数的灵活性,greenlet拿的是yield封装。t1,t2都是全局变量;greenlet 需要通过sudo pip install greenlet(如果你的ubuntu里既有py...

2019-11-27 22:44:38

协程-生成器

生成器是一种特殊的迭代器。生成器的几种生成方法1.将[]变成() 1 def main(): 2 nu=[i*2 for i in range(5)] 3 print(nu) 4 nu=(i*2 for i in range(5...

2019-11-27 12:04:37

协程-迭代器

1.迭代器

2019-11-24 21:39:10

进程(涉及到进程池,队列)-文件夹拷贝

vim编辑器 1 import os 2 from multiprocessing import Pool 3 4 5 def cp(file_name,old_filename,new_filename): 6 #模拟复制文件 ...

2019-11-23 22:34:37

Windows必备软件

1.谷歌浏览器(见我的另一篇文章,对浏览器下载安装有详细的介绍):谷歌浏览器2.中文PotPlayer播放器(功能最全的播放器):PotPlayer官网(需要科学上网):;亲测可用(安装时,语言选择简体中文即可,里面还有旧版本的potplayer)需要从诚通网盘下载(类似易破解)3.虚拟机:官网Vmware-Workstation(需要登录);第七下载(亲测可用,安装时并无捆绑软件...

2019-11-22 21:00:46

安装win10系统

总的来说安装操作系统分为三步:(1).制作u盘启动盘(2).下载系统镜像(3).安装操作系统0.前期准备知识。进入BIOS后有两种模式引导,一个是Legacy,另一个是UEFI扩展:查看当前电脑的引导模式和查看电脑是否支持uefi...

2019-11-20 10:33:04

下载谷歌浏览器官方正式(稳定)版以及历史各种版本

谷歌浏览器官网是:添加链接描述,但是正常方法是不能访问的,需要科学上网。对于没有科学上网条件的人,我们只能通过一些其它方法下载原生态的官方稳定(正式)版本,如果你在浏览器上搜索会出现一堆,但是有很多垃圾网站,捆绑一些流氓应用,很让人头疼。这里介绍几个方法1.百度搜索"谷歌网络浏览器",第一个就是,带有官方字样,注意它的网址是添加链接描述,与上方的官网还是有区别的,这个正常网络是可以访问的,不要...

2019-11-17 11:03:17

绿色版,便携版,破解版,精简版区别

正式版:通常是指原版或官方版本无做过任何修改的而且可以使用软件的全功能,修改系统注册表,安装并注册后才能使用,除非是免费软件。共享版:与正式版的区别是存在功能限制,或是使用次数限制等.类似试用版.精简版:去除一些功能,删除了部分不常用的功能的破解版:给软件脱壳,算出注册码.跟正式版唯一的区别就是不用钱并没有技术支持,用汇编工具或其他工具,将程序验证注册信息部分破解,使得安装后不需输入注册码或...

2019-11-17 13:44:54

进程池

当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到指定的最...

2019-11-16 17:32:57

进程间通信-队列

队列:先进先出,后进后出栈:先进后出,后进先出之前的文章介绍过使用socket,文件都可以实现进程间通信,socket是通过网络通信,两个进程间可以不在同一个电脑上;而文件是存放在硬盘里,一个进程写文件,一个进程读文件,实现进程间通信。不管是socket还是文件最终都是把数据存放在内存里,那么我们可以直接用内存来实现进程间通信,这里可以用到队列(Queue),他是内存里的一块内存,一个进程往内...

2019-11-08 19:45:58

多任务-进程

实现多任务除了线程,进程也可以 1 import multiprocessing 2 import time 3 def sing(): 4 for i in range(5): 5 print("正在唱歌") 6 time.sleep(0.1) 7 8 def dance(): 9 for i in range...

2019-11-07 22:20:27

线程与进程的区别

1.了解进程,线程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源和调度的基本单元。(用自己的话说,单进程就是一个程序本身,多进程就是多个程序)线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存...

2019-11-07 22:29:37

UDP做一个多任务的聊天器

UDP做一个多任务的聊天器(与网络调试助手配合)实现既可以发送数据,也可以接收数据 1 from socket import * 2 import threading 3 4 def sd(udp_socket): 5 while True: 6 ...

2019-11-05 16:50:04

线程死锁和银行家算法

1.死锁:在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。2. 避免死锁程序设计时要尽量避免(银行家算法)添加超时时间等3.银行家算法[背景知识]一个银行家如何将一定数目的资金安全地借给若干个客户,使这些客户既能借到钱完成要干的事,同时银行家又能收回全部资金而不至于破产,这就是银行家问题。这个问题同操作系统中资源分配问题十分相似:银行家就...

2019-11-05 15:39:36

线程同步导致的互斥,以及互斥锁解决资源竞争

很多时候我们需要线程同步,但线程同步也会引发一些问题。1.如果处理量小的话,还不会出现问题 1 import threading 2 import time 3 4 num=0 5 def test1(temp): 6 for i in range(temp): 7 global num 8 num+=1 9 ...

2019-11-04 21:27:00

多线程共享全局变量

1.子线程,主线程共享全局变量 1 import threading 2 import time 3 4 num=100 5 6 def test1(): 7 global num 8 num+=100 9 print("-----test1----num:...

2019-11-04 09:52:59

线程

0.前期准备知识:单核cpu:单核cpu一次只能处理一个任务(程序/进程),但我们现实中感觉的是,单核cpu能同时处理多个任务,因为单核cpu采用了时间轮片的方法,比如qq,微信,支付宝三个任务,系统会给每个任务分配指定的时间处理他们的工作,比如分配qq的时间片是0.000001s,不要小看0.00001s,cpu1秒可以处理数百万个数据,0.000001s也是可以处理很多数据的,同理微信,支付...

2019-11-03 21:32:06

TCP下载文件

1.从服务器上下载文件原理:当我们在浏览器/迅雷从服务器上下载文件时,它会在本地先建立一个文件,这个文件的名字跟想要下载的文件名字是一样的,然后从服务器读取到一点数据,就会write()到本地,一直这样循环,直至写完为止。2.客户端发送下载文件请求:1.创建套接字2.链接服务器3.发送下载文件请求4.在本地创建一个文件名跟所要下载的文件名一样的文件5.如果有数据,就创建新文件接收数据,...

2019-11-02 18:53:02

TCP通信

TCP通信过程:客服端:1.创建套接字2.链接服务器3.发送数据(当然也可以接收数据)4.关闭from socket import *# 创建sockettcp_client_socket = socket(AF_INET, SOCK_STREAM)# 目的信息server_ip = input("请输入服务器ip:")server_port = int(input("请...

2019-10-30 09:48:56

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。