回调函数

C 函数指针、回调函数

柔情痞子 提交于 2019-12-02 00:27:06
参考链接: https://www.runoob.com/cprogramming/c-fun-pointer-callback.html 函数指针 函数指针就是执行函数的指针,他可以像正常函数一样去调用函数并且传递参数(若ptr指向一个函数,在实际使用的过程中就像函数名一样去使用) 声明 int max(int x, int y) { return x > y ? x : y; } //声明 int (*p)(int,int)=&max //使用 d=p(1,2) 回调函数 就是把函数指针传递过去,从而可以在另外一个函数中使用的的函数就叫做回调函数 来源: https://www.cnblogs.com/Gaoqiking/p/11723102.html

Scrapy框架

丶灬走出姿态 提交于 2019-12-02 00:09:44
# Scrapy框架 一、介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下 引擎(EGINE) 引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。 调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(DOWLOADER) 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的 爬虫(SPIDERS) SPIDERS是开发人员自定义的类,用来解析responses,并且提取items,或者发送新的请求 项目管道(ITEM PIPLINES)

C# 子线程回调函数通知主线程完成情况

馋奶兔 提交于 2019-12-01 23:46:07
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleApplication5 { public class ThreadCallBackTest { /// <summary> /// 记录正常完成的子线程数 /// </summary> int count = 0; /// <summary> /// 主函数 /// </summary> /// <returns></returns> public bool Run() { //总线程数 int total = 10; MyParam m; List<Thread> listThread = new List<Thread>(); for (int i = 0; i < 10; i++) { m = new MyParam(); m.x = i; m.y = i + 1; m.callBack = ThreadCallBack; Thread t = new Thread(new ParameterizedThreadStart(Buss)); t.Start(m); listThread.Add(t); } //等待所有线程完成

进程池

被刻印的时光 ゝ 提交于 2019-12-01 22:27:24
#模块:Pool #导入方法:from multiprocessing import Pool #原理: 进程池:一个池子,里边有固定数量的进程。这些进程一直处于待命状态,一旦有任务来,马上就有进程去处理。 因为在实际业务中,任务量是有多有少的,如果任务量特别的多,不可能要开对应那么多的进程数 开启那么多进程首先就需要消耗大量的时间让操作系统来为你管理它。其次还需要消耗大量时间让 cpu帮你调度它。 进程池还会帮程序员去管理池中的进程。 #模块方法: from multiprocessing import Pool p = Pool(os.cpu_count() + 1) #规定进程池中的进程数量根据(CPU核数+1) 三种方法: map(func,iterable) func:进程池中的进程执行的任务函数 iterable: 可迭代对象,是把可迭代对象中的每个元素依次传给任务函数当参数 apply(func,args=()): 同步的效率,也就是说池中的进程一个一个的去执行任务 func:进程池中的进程执行的任务函数 args: 可迭代对象型的参数,是传给任务函数的参数 同步处理任务时,不需要close和join 同步处理任务时,进程池中的所有进程是普通进程(主进程需要等待其执行结束) apply_async(func,args=(),callback=None): 异步的效率

进程池线程池

≡放荡痞女 提交于 2019-12-01 22:26:55
模块:ThreadPoolExecutor,ProcessPoolExecutor 导入方法: from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor 原理: concurrent.futures是异步调用的机制 模块区分: from multiprocessing import Pool.apply/apply_async 既可同步也可异步 区分: 进程池中进程的数量为计算机核数+1 线程池中线程的数量为计算机核数*5 进程池中的回调函数是父进程调用的,和子进程没有关系 线程池中的回调函数是子线程调用的,和父进程没有关系 模块方法: shutdown() 等效于进程池Pool中的close和join的组合 使用方法: 提交任务用submit 再强调: 如果程序的IO操作比较多,则采用多线程的方式,因为多线程的切换速度比多进程快 如果程序的计算比较多,则采用多进程的方式 小结:针对计算密集的程序来说,Pool或者ProcessPoolExecutor执行效率相当,而ThreadPoolExecutor相对于前两者效率更差 所以当计算密集时使用多进程 #######线程池(进程池)(多任务提交) from concurrent.futures import ThreadPoolExecutor

熊猫烧香_汇编级_超详细分析

拈花ヽ惹草 提交于 2019-12-01 22:00:22
1.样本概况 1.1 应用程序信息 文件: C:\Windows\System32\drivers\spo0lsv.exe 大小: 30001 bytes 修改时间: 2007年1月17日, 12:18:40 MD5: 512301C535C88255C9A252FDF70B7A03 SHA1: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870 CRC32: E334747C 简单功能介绍: \1. 自启动 \2. 删除gho文件 \3. 全盘感染指定类型文件 \4. 局域网传播 \5. 从网络下载其他恶意文件执行 \6. 删除安全管理软件服务、启动项 \7. 其他 说明: 该样本是熊猫烧香的一个变种spo0lsv.exe,高危险级别 1.2 分析环境及工具 系统环境:windows 7 32bit 工具:火绒剑、PcHunter、IDA、OllyDebug 1.3 分析目标 使用火绒剑进行行为分析,结果如下: \1. 文件操作 图 1 - 1 分析:在各敏感路径创建了spo0lsv.exe、setup.exe、autorun.inf、Desktop_.ini等文件并写入了内容。其作用暂时不明,待后面具体分析。 \2. 注册表操作 图 1 - 2 分析:注册表操作很多,能只管看出的是在启动项下创建了新的键值,以及设置了隐藏属性。 \3. 网络操作 图

蓝奏网盘API

此生再无相见时 提交于 2019-12-01 21:36:15
蓝奏云网盘API 2.0 基于Python3实现,最强的蓝奏云API~ 蓝奏云注册 更新说明 修复了登录时 formhash 错误的问题 解决了多次上传大文件被限制的问题 #3 细化 API 接口的功能,某些接口被取消、更名 操作网盘时会进行检查,屏蔽蓝奏云不合理的设计 支持批量上传/下载 上传大文件不再直接将数据分段,改用 RAR 分卷压缩 #2 取消使用 种子文件 下载大文件,自动识别分卷压缩文件并解压 上传/下载时支持使用回调函数显示进度 #1 不再向上抛异常,而是返回错误码 简介 本库封装了对蓝奏云的基本操作: 登录、列出文件、下载文件、上传文件、删除文件(夹)、 清空回收站、恢复文件、创建文件夹、设置文件(夹)访问密码、直链解析 此外,通过伪装后缀名,解决了蓝奏云的上传格式限制。 通过分卷上传,解决了单文件最大 100MB 的限制。同时增加了批量上传/下载的功能 如果有任何问题或建议,欢迎提 issue。最后,求一个 star (≧∇≦)ノ 安装依赖库 pip install requests requests_toolbelt Windows 平台可使用项目文件中的 rar.exe 作为解压工具,Linux 平台需安装 rar sudo apt install rar API 文档 .login(username, passwd) 登录蓝奏云 参数 类型 说明 必填

ES6 Promise 对象

不羁的心 提交于 2019-12-01 20:27:24
概述 在JavaScript的世界中,所有代码都是单线程执行的。 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。 把回调函数 success(request.responseText) 和 fail(request.status) 写到一个AJAX操作里很正常,但是不好看,而且不利于代码复用。 有没有更好的写法?比如写成这样: var ajax = ajaxGet('http://...'); ajax.ifSuccess(success) .ifFail(fail); 先统一执行AJAX逻辑,不关心如何处理结果,然后,根据结果是成功还是失败,在将来的某个时候调用 success 函数或 fail 函数。这种“承诺将来会执行”的对象在JavaScript中称为Promise对象。 实例 我们先看一个最简单的Promise例子:生成一个0-2之间的随机数,如果小于1,则等待一段时间后返回成功,否则返回失败: function test(resolve, reject) { var timeOut = Math.random() * 2; console.log('set timeout to: ' + timeOut + ' seconds.'); setTimeout(function () { if (timeOut < 1) {

$.ajax()方法详解

不羁的心 提交于 2019-12-01 18:27:23
引用来自:https://blog.csdn.net/mozuncangtianbaxue/article/details/79002775 jquery中的ajax方法参数总是记不住,这里记录一下。 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。 5.cache: 要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。 6.data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看  processData选项

JS执行机制

浪子不回头ぞ 提交于 2019-12-01 16:37:24
1.JS 是单线程 也就是说 同一时间 只能做一件事  JavaScript 就是为了处理页面中用户的交互,以及操作 DOM 而诞生,比如某个 DOM 元素进行添加和删除,不能同时进行,应该先添加,后删除 2.单线程就意味着,所有任务需要排队,前一个任务结束 ,才能执行后一个任务。  这样导致的问题是:如果 JS执行的时间过长,这样就会造成页面渲染不连贯,导致页面渲染加载阻塞的问题 3.同步 和 异步  为解决 单线程 问题,利用多核 CPU 的计算能力,HTML5 提出Web Worker ,允许 JavaScript 脚本创建多个线程。于是,JS中出现了 同步 和 异步 。  同步:前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。   比如先烧水,等水开了(十分钟之后),再去切菜,炒菜  异步:做前一个任务时间比较长,那么在做前一个任务的同时,还可以去处理后面其他的任务。   比如在烧水的同时(利用这十分钟),还可以去切菜,炒菜   他们的本质区别:这条流水线上各个流程的执行顺序不同。 4.同步任务和异步任务的执行过程  同步任务:都在主线程上执行,形成一个执行线。  异步任务:JS 的异步是通过回调函数实现的  异步任务有三种类型:   1.普通事件, click、resize 等   2.资源加载, load、error 等   3.定时器