Yujun's Blog

Linux常见操作-查看端口占用情况

    可以使用  lsof  或者  netstat        netstat:  查询网络状态lsof        lsof(list  open  files):  列出当前已打开文件        在  linux,  任何事物都是以文件形式存在,系统会为  TCP、UDP  分配一个

#基础   #linux   #查看端口  

Python协程-async原生协程

本篇紧接上篇博文,建议先阅读  Python协程-基于生成器的协程原生协程  async/await        在上一篇中,我们学习了  “基于生成器的协程”,        我们创建  Future  用来储存结果数据,创建了  Task,用来推进生成器(协程任务)进行:           

#协程   #原生协程   #async   #await   #asyncio   #Python  

Python协程-基于生成器的协程

本篇紧接上篇  协程原理-IO多路复用什么是协程        在上篇中,我们已经学习了协程的原理-IO多路复用,即将程序分割成多个模块,通过  操作系统的事件驱动  来监控模块        的可执行状态,当某个模块变为可执行状态时(相关事件发生),  则执行该模块,如:             

#协程   #基于生成器的协程   #Python   #生成器  

Python协程原理-IO多路复用

参考:  IO多路复用        多路复用是在单线程下的一种高效io模型,  多路指的是多个io操作,复用  指的是  “复用线程"。####  io  操作        以  io操作  read  举例,参与操作的对象有两个,调用操作的线程  和  系统内核,  操作分为两个阶段

#epoll   #poll   #io多路复用   #非阻塞   #select  

CPython的GIL

    GIL,  全称:  Global  Interpreter  Lock  (全局解释器锁),  是解释器采用的一种机制,        它的作用是:确保同一时刻只有一个线程在执行。回顾  操作系统、CPU、线程的关系        线程包含需要  CPU  执行的指令集合,线程需要参加  

#多线程   #并发   #GIL   #全局解释器锁   #Python  

寻找数组的错位排列

在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列。给定一个从  1  到  n  升序排列的数组,你可以计算出总共有多少个不同的错位排列吗?由于答案可能非常大,你只需要将答案对  1000000007  取余输出即可。样例  1:        输入:  3   

#leetcode   #数学   #算法   #取余   #中等   #动态规划  

Python函数参数传递方式

    Python  函数参数传递方式并不像其他语言那样是  指针/引用  和  值传递,  而是  对象引用传递,        本质上是  “引用传递”,  可以说  python  中不存在  值传递,而是存在  “不可变对象”容易误判的操作        容易被误认为是  引用传递  的操

#基础   #Python  

可能的二分法

给定一组  N  人(编号为  1,  2,  ...,  N),  我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果  dislikes[i]  =  [a,  b],表示不允许将编号为  a  和  b  的人归入同一组。当可以用这种方法将所有人

#leetcode   #算法   #贪心   #中等   #图遍历   #深度优先   #广度优先  

根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组  people  表示队列中一些人的属性(不一定按顺序)。每个  people[i]  =  [hi,  ki]  表示第  i  个人的身高为  hi  ,前面  正好  有  ki  个身高大于或等于  hi  的人。请你重新构造并返回输入数组  peo

#leetcode   #算法   #贪心   #中等