2 何程龙

西安英莱特信息科技有限公司 - 软件工程师

我要认证

何程龙,大学计算机信息管理专业在读,现就任后端开发工程师、数据库工程师。曾担任城建创新创业学院理事会会长,现为CSDN博客专家、签约讲师,中国开源协会-开发分会管理委员会委员。带过多批学员,因授课耐心细致,通俗易懂,风趣幽默,富有激情,受学员一致好评。 现主要从事软件开发及软件教育培训,具有丰富的实战经验,善于将复杂问题简单化,擅长Web前端、JavaScript框架、Java并发、C#编程、Python Web、数据库SQL等领域及技术。

等级
TA的排名 1w+

Python网络编程之udp

文章目录一、什么是网络二、使用网络的目的三、什么是ip地址一、什么是网络网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发展史来最重要的发明,提高了科技和人类社会的发展。网络就是一种辅助双方或者多方能够连接在一起的工具。二、使用网络的目的为了联通多方进行通信用的,即把数据从一方传递给另外一方。之前的编程都是单机的,即不能和其他电脑上的程序进行通信。为了让在不

2020-08-19 09:54:37

Python并发编程之进程、线程、协程对比

友情链接:文章目录一、举例二、总结一、举例有一个老板想要开个工厂进行生产某件商品(例如剪子)。他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的为了能够生产剪子而准备的资源称之为:进程。只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程。这个老板为了提高生产率,想到3种办法:在这条生产线上多招些工人,一起来做剪子,这样效率是成倍増长,即单进程 多线程方式。老板发现这条生产线上的工

2020-08-17 16:32:02

Python并发编程之协程(greenlet、gevent)

文章目录一、greenlet1.1 安装方式1.2 greenlet的使用二、gevent2.1 安装方式2.2 gevent的使用2.3 gevent切换执行2.4 给程序打补丁一、greenlet为了更好使用协程来完成多任务,Python中的greenlet模块对其封装,从而使得切换任务变的更加简单。1.1 安装方式使用如下命令安装greenlet模块:sudo pip3 install greenlet1.2 greenlet的使用from greenlet import greenl

2020-08-17 16:27:40

Python并发编程之协程【必知必会】

前言:前面我们已经讲解过了进程和线程,本博文将讲解实现多任务的另一种方式——多协程。文章目录一、协程概念二、协程和线程差异三、简单实现协程一、协程概念协程,又称微线程,纤程。英文名Coroutine。协程是Python中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机,我们可以把一个协程切换到另一个协程。只要这个过程中保存或恢复CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,

2020-08-17 16:24:31

Python中生成器详解

前言:在前面的博文里,已经介绍了生成器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的生成器。文章目录一、生成器简介二、使用()创建生成器三、使用yield创建生成器四、使用send唤醒一、生成器简介利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即

2020-08-17 16:23:20

Python中迭代器详解

前言:在前面的博文里,已经介绍了迭代器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的迭代器。文章目录一、迭代器简介二、可迭代对象三、判断一个对象是否可以迭代四、可迭代对象的本质五、iter()函数与next()函数六、判断一个对象是否是迭代器七、迭代器Iterator八、for...in...循环的本质一、迭代器简介迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

2020-08-17 16:21:26

Python进程、线程对比【建议收藏】

一、功能进程:能够完成多任务,比如在一台电脑上能够同时运行多个QQ。线程:能够完成多任务,比如一个QQ中的多个聊天窗口。二、定义的不同进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。三、区别一个程序至少有一个进程,一个进程至少有一个线程。线程的

2020-08-16 18:10:19

Python并发编程之线程(死锁)

前言:本博文主要讲解Python并发编程中线程的死锁。死锁就是使用互斥锁不当而产生的后果,那么我们应该如何避免、解决呢?请看下文!文章目录一、死锁二、避免死锁三、银行家算法介绍3.1 背景知识3.2 问题描述3.3 案例总结一、死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:import threadingimport timeclass MyThread1(thr

2020-08-16 18:07:38

Python并发编程之线程(同步、互斥锁)

前言:本博文是对Python并发编程之线程的知识延伸,主要讲解:同步、互斥锁。文章目录一、同步的概念二、解决线程同时修改全局变量的方式三、互斥锁的概念四、使用互斥锁完成2个线程对同一个全局变量各加100万次的操作五、上锁解锁过程分析一、同步的概念同步就是协同步调,按预定的先后次序进行运行。 如:你说完,我再说。"同"字从字面上容易理解为一起动作;其实不是,"同"字应是指协同、协助、互相配合。如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B

2020-08-16 18:07:00

Python多线程中的threading

前言:在前面的博文里,我介绍了实现Python多任务的一种方式——多进程,那么本博文将介绍另一种方式——多线程。文章目录一、使用threading模块1.1 使用threading模块1.1.1 单线程执行1.1.2 多线程执行1.2 主线程会等待所有的子线程结束后才结束一、使用threading模块Python的thread模块是比较底层的模块,Python的threading模块是对thread做了一些包装的,可以更加方便的被使用。1.1 使用threading模块1.1.1 单线程执行im

2020-08-16 18:06:19

深入理解Python中的GIL(全局解释器锁)

前言:本博文主要讲解Python中的GIL(全局解释器锁),本人经过查阅多个资料,摒弃一些较官方的描述,用自己的语言整理并加以补充,如果有描述有误的地方,还望读者在评论区指出,谢谢!文章目录一、GIL是什么二、为什么会有GIL三、GIL的副作用四、GIL的总结五、GIL面试题一、GIL是什么GIL:又称全局解释器锁。作用就是限制多线程同时执行,保证同一时间内只有一个线程在执行。线程非独立的,所以同一进程里线程是数据共享,当各个线程访问数据资源时会出现“竞争”状态,即数据可能会同时被多个线程占用,造成数

2020-08-14 20:23:20

Python并发编程之进程(僵尸进程、孤儿进程)

文章目录一、基本概念二、僵尸进程三、孤儿进程2.1 multiprocessing2.2 fork四、知识扩展一、基本概念在前面的博文里,我们都知道:正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。也就是说:父进程会默认等待子进程的执行,在所有子进程都结束之后,父进程再结束。二、僵尸进程僵

2020-08-14 20:22:31

Python并发编程之进程总结

前言:本博文主要讲解Python进程以及状态。文章目录一、进程二、进程的状态三、进程间不同享全局变量一、进程程序: 例如xxx.py这是程序,是一个静态的。进程: 一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。进程是完成多任务的一种方式。二、进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态。就绪态:运行的条件都已经慢去,正在等在cpu执行。执行态:cpu正在执行其功能。

2020-08-14 17:39:09

Python进程通信之Queue

前言:Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。本博文主要讲解:进程间通信的Queue。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork浅谈Python并发编程之进程池文章目录一、Queue的使用二、Queue的实例三、进程池中的Queue一、Queue的使用我们可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Que

2020-08-13 22:31:32

Python并发编程之进程池

前言:本博文主要讲解Python并发编程中的进程池(Pool)。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork浅谈Python并发编程之进程(守护进程、锁、信号量)文章目录一、进程池Pool二、apply堵塞式三、apply、apply_async的区别3.1 apply阻塞式3.2 apply_async异步非阻塞式一、进程池Pool引言:当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态

2020-08-11 21:42:48

Python并发编程之进程(守护进程、锁、信号量)

前言:本博文是对Python并发编程之进程的知识延伸。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork文章目录一、守护进程1.1 守护进程的概念1.2 守护进程的示例1.3 多个子进程的情况一、守护进程1.1 守护进程的概念首先我们都知道:正常情况下,主进程默认等待子进程调用结束之后再结束,守护进程在主进程所有代码执行完毕之后,自动终止。当然我们也可以使用kill -9 进程号,杀死进程。那么接下来,我们看一下守护进程的语法:进程对象

2020-08-09 18:01:34

Python中time模块的用法

前言:在平常的代码中,我们常常需要与时间打交道。那么在Python中,与时间处理有关的模块就包括:time,datetime以及calendar,本篇博文讲主要讲解time模块。官方文档:time-时间访问和转换文章目录一、表示时间的方式二、常用函数一、表示时间的方式时间戳表示法: 即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。格式化的时间字符串: 即以格式化字符串的格式输出时间形式。元组格式表示法: 即一种Python的数据结构表示。这

2020-08-08 23:18:14

Python多进程中的fork

前言:当我们要实现Python多进程时,可以使用os模块中的fork()函数和multiprocessing模块,那么它们之间的用法和区别呢?下来,我们着重进行讲解:文章目录一、两者区别二、fork()三、getpid()、getppid()四、多进程修改全局变量五、多次fork问题一、两者区别首先,我们要搞清楚这两个模块的区别是什么?fork()是基于Unix/Linux内核的函数,在windows中无法使用。multiprocessing模块作为跨平台的存在。Unix/Linux操作系

2020-08-08 23:13:26

Python多进程中的multiprocessing

前言:一、多任务的引入在现实生活中,有很多的场景中的事情是同时进行的,比如开车的时候,手和脚共同来驾驶汽车;再比如,唱歌跳舞也是同时进行的。下来,我们在程序里面,模拟一下“唱歌跳舞”这件事情,如下:from time import sleepdef sing(): for i in range(3): print("正在唱歌...%d"%i) sleep(1) def dance(): for i in range(3):

2020-08-08 23:11:52

Python迭代器、生成器实现斐波拉契数列【必知必会】

友情链接:深究Python迭代器与生成器(建议收藏)Python实现斐波拉契数列和冒泡排序文章目录一、迭代器实现二、生成器实现三、生成器+itertools实现一、迭代器实现class myFibs(object): def __init__(self, control): self.a = 0 self.b = 1 self.control = control self.item_index = 0

2020-08-07 19:44:55

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取