title: 从Workflowy到印象笔记 toc: true comment: true date: 2018-03-17 10:05:54 tags: ["Python", "Workflowy", "Evernote"] category: ["Craft"] --- Workflowy是一个极简风格的大纲写作工具,使用它提供的无限层级缩进和各种快捷键,可以非常方便的理清思路,写出一个好看而实用的大纲.如下图所示. 印…
Python 黑帽编程大纲(预览版) 教程说明: 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Python>一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题,教程采用重实践轻理论的风格来呈现.由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好.教程同时提供图文和视频教程两种方式,由于教程在创作过程中,在整套教程完结前,感兴趣的同…
全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌握获取并安装第三方库的方法. 能够阅读和分析Python程序. 熟练使用IDLE开发环境,能够将脚本程序转变为可执行程序. 了解Python计算生态在以下方面(不限于)的主要第三方库名称:网络爬虫.数据分析.数据可视化.机器学习.web开发等. 考试内容 Python语言基本语法元素 程序的基本语法…
 孤荷凌寒自学python第四十三天python的线程同步之Queue对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Queue对象是直接操作队列池的对象,队列中可以存放多种对象,当然也就可以存放线程对象,将多个线程对象存放于队列池中之后,就能非常显式的操作各个线程,非常方便.这是今天学习Queue的皮毛之后的感受,第一次感觉对线程有了非常完全的掌控,不像最初学习Lock与RLock那样,那时感觉完全没有掌控住线程. 一.  引用queue模块 Queue来自于模块queue 注意…
 孤荷凌寒自学python第四十一天python的线程同步之Event对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 鉴于Lock锁与RLock锁均宣告没有完全完成同步文件操作的问题,于是进一步初步了解了Event对象. 一.  得到Event对象 新的Event对象=threading. Event() 使用Event类的初始化方法之前,必须保证当前py文档已声明引用过threading模块: import threading 二.  Event对象的主要方法 Event对象有三…
Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就绪,挂起,运行) ,***协程概念,yield模拟并发(有缺陷),Greenlet模块(手动切换),Gevent(协程并发) 一丶同步,异步 同步:    所谓同步就是一个任务需要依赖另一个任务时,只有被依赖任务执行完毕之后,依赖的任务才会完成.这是可靠的任务序列.要么都成功,要么失败,两个任务的状…
同步锁: Python不是有一把锁了吗?为什么还要加锁? Python解释器的GIL的作用是同一时刻只有一个线程被CPU执行,而同步锁的作用同一时刻只有一个线程对锁定代码块操作 如果不加锁,当多个线程对同一数据操作的时候就有可能出问题,代码如下: import threading import time def minus_num(): global num temp = num time.sleep(0.001) num = temp - 1 num = 100 threads = [] fo…
转自:http://www.w3cschool.cc/python/python-multithreading.html 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等.…
如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性,需要对多个线程进行同步. 使用Thread对象的Lock和Rlock可以实现简单的线程同步,这两个对象都有acquire方法和release方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到acquire和release方法之间.如下: 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样).但是当线程需要共享数据时,可能存在数据不同步的问题. 考虑这样一种情况:一个列表里所有元素都是0,线程"se…
#!/usr/bin/python # -*- coding: UTF-8 -*- # 在一个资源池中.获取资源 # Author: zhang # Date: 2015-7-27 import time import os import threading # 其它的一些可加入操作,这里为休眠 def doSomething(): time.sleep(1) # 获取资源 def getResource(threadid): global i global lock while True: l…
摘录python核心编程 一般的,多线程代码中,总有一些特定的函数或者代码块不希望(或不应该)被多个线程同时执行(比如两个线程运行的顺序发生变化,就可能造成代码的执行轨迹或者行为不相同,或者产生不一致的数据),比如修改数据库.更新文件或其他会产生竞态条件的类似情况.此时就需要同步了. 同步:任意数量的线程可以访问临界区的代码,但在给定的时刻又只有一个线程可以通过时. 这里介绍两个基本的同步类型原语:锁/互斥.信号量 锁 锁有两种状态:锁定和未锁定.与之对应的是两个函数:获得锁和释放锁. 当多线程…
windows + python2.7 安装 python-ldap https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap 2.python 同步密码 # encoding: utf-8 """ Created by Jeff Liu on 2019/12/2 """ import ldap import re PORTAL_LDAP = { 'bind_dn': '', 'bind_pa…
Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式: Range:(unit=first byte pos)-[last byte pos] Range 头部的格式有以下几种情况: Range: bytes=0-499 表示第 0-499 字节范围的内容 Range: bytes=500-999 表示第 500-999 字节范围的内容 Range: bytes=-500 表示最后 500 字节的内容 Range: bytes=500- 表示从第 500 字节开始到文件结…
lock与rlock 使用lock不能连续两次获取锁,获取锁必须先释放锁.但是在一个线程中调用另一个函数时,在该函数中要继续操作共享的数据,这时获取锁就相当于连续执行两次获取锁,所以lock就不适用该场景,就要使用rlock了. condition(条件变量,用于复杂的线程间同步) 场景: 期待天猫与小爱的对话如下 天猫:小爱同学 小爱:在 天猫:我们来对古诗吧 小爱:好啊 使用lock来实现 import threading class XiaoAi(threading.Thread): de…
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. 一 概念说明 在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程…
1,消息推送类 import pika # 同步消息推送类 class RabbitPublisher(object): # 传入RabbitMQ的ip,用户名,密码,实例化一个管道 def __init__(self, host, user, password): self.host = host self.user = user self.password = password self.connection = pika.BlockingConnection(pika.Connection…
提交任务的两张方式: 1.同步调用 2.异步调用 同步调用:提交完任务后,就在原地等待任务执行完后,拿到结果,再执行下一行代码 同步调用,导致程序串行执行 from concurrent.futures import ThreadPoolExecutor import time import random def la(name): print("%s is 正在拉" % name) time.sleep(random.randint(1,3)) res = random.randin…
Event对象: 用于线程间的通信,某个线程需要根据其他线程的状态来判断自己的下一步操作. Event内部定义了一个全局变量:_flag,默认为False. 当_flag = False时,会阻塞当前线程的执行:_flag = True时,当前线程会继续执行. Event内部还定义了如下方法来操纵标志位: set() ——将_flag(标志位)设置为True: clear()——将_flag设置为False: is_set()——返回当前_flag的状态.等同于isSet(). wait()——…
进程之间通信与线程同步是一个历久弥新的话题,对编程稍有了解应该都知道,但是细说又说不清.一方面除了工作中可能用的比较少,另一方面就是这些概念牵涉到的东西比较多,而且相对较深.网络编程,服务端编程,并发应用等都会涉及到.其开发和调试过程都不直观.由于同步通信机制的原理都是想通的,本文希通过望借助python实例来将抽象概念具体化. 阅读之前可以参考之前的一篇文章:python多线程与多进程及其区别,了解一下线程和进程的创建. python多线程同步 python中提供两个标准库thread和thr…
Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Python>一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作.由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好.教程同时提供图文和视频教程两种方式,供不同喜好的同学选择.由于教…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 之前我的Python教程中有人留言,表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作.而我的想法是,掌握一个类似于框架的高级工具是有用的,但是基础的东西可以让你永远不被淘汰.不要被工具限制了自己的发展.今天,我在这里想要展示的,就是不使用框架,甚至不使用Python标准库中的高级包,只使用标准库中的socket接口(我不是很明白套接字这个…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经见过了使用subprocess包来创建子进程,但这个包有两个很大的局限性:1) 我们总是让subprocess运行外部的程序,而不是运行一个Python脚本内部编写的函数.2) 进程间只通过管道进行文本交流.以上限制了我们将subprocess包应用到更广泛的多进程任务.(这样的比较实际是不公平的,因为subprocessing本身就是设计成为一个shell,而不是一个多…
本文介绍Python的os包中有查询和修改进程信息的函数,Python的这些工具符合Linux系统的相关概念,所以可以帮助理解Linux体系. 1. 进程信息 os包中相关函数如下: uname() 返回操作系统相关信息,类似于Linux上的uname命令. umask() 设置该进程创建文件时的权限mask,类似于Linux上的umask命令. get*() 查询 (*由以下代替) uid, euid, resuid, gid, egid, resgid :权限相关,其中resuid主要用来返…
原文:Python网络01 原始Python服务器 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 之前我的Python教程中有人留言,表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作.而我的想法是,掌握一个类似于框架的高级工具是有用的,但是基础的东西可以让你永远不被淘汰.不要被工具限制了自己的发展.今天,我在这里想要展示的,就是不使用框架,甚至不使用Python标准库中的高级包,只使…
近日,在阿里云服务器上部署了一个Python,Web框架为Tornado,服务器为Ubuntu 16.04. 服务的启动也十分的简单: python services.py 我是利用Xshell工具连接云服务器的,在启动服务的时候发现,一旦我关闭了Xshell窗口,服务就会停止,这就意味我必须时刻保持着对服务器的连接,服务才不会被Stop,这并比现实,所以我想写个脚本文件来控制程序的start以及stop. 具体实现如下 : service-manager.sh(因为我是直接在root权限下进行…
Tornado既是一个web server,也是web framework.而它作为web server 采用的是asynchronous IO的网络模型,这是一种很高效的模型. Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架. 同步IO操…
def mone_sorted(itera): new_itera = [] while itera: min_value = min(itera) new_itera.append(min_value) itera.remove(min_value) return new_itera if __name__ == "__main__": lst = [2, 3, 1, 5, 4] print(mone_sorted(lst)) 函数内部使用了选择排序的思想 1 编写函数,模拟内置函数…
python3  进程/线程4 进程间同步互斥方法: from multiprocessing import Lock 创建 进程锁对象 lock = Lock() lock.acquire()  给临界区上锁 lock.release() 给临界区解锁 说明:1,具体实现上 acquire() 为一个条件阻塞函数: 2,当有任意一个进程先进行了acquire操作后,其他进程再企图进行acquire操作时就会阻塞,直到lock对象被release后其他进程CIA可以进行下次 acquire操作:…
1. 印象笔记剪裁,直接浏览器上百度搜索,下载浏览器插件,登陆即可.(不过,我遇到个问题,浏览器登陆的服务器貌似是国际版的,与pc上的服务器不同,也没有成功转换过来.两账户相互独立.) 2. 印象笔记客户端,使用第三方软件NixNote2授权访问. 安装: sudo add-apt-repository ppa:nixnote/nixnote2-daily sudo apt update sudo apt install nixnote2 启动: sudo nixnote2 在菜单栏点 File…