一、线程的理解 1、同个应用中,多个任务同时进行。就像QQ聊天,打开一个聊天窗口就是一个线程。 2、线程可以有多个,但cpu每时每刻只做一件事。由于cpu处理速度很快,我们就感觉是同时进行的。所以宏观上,线程时并发进行的;从微观角度看,线程是异步执行的。 3、使用线程的目的是最大限度的利用cpu资源 ...
分类:
编程语言 时间:
2018-03-12 21:01:41
阅读次数:
211
(一) 方法 方法 简单说明 execute_async_script(script, args) 异步执行JS代码 script:被执行的JS代码 args:js代码中的任意参数 execute_script(script, args) 同步执行JS代码 script:被执行的JS代码 args: ...
分类:
编程语言 时间:
2018-03-08 22:58:24
阅读次数:
299
讲解GCD的资料看了好多,但都没有解决心中的疑惑: 1.主队列只有一个线程,那么同步和异步执行有什么区别?同步主线程会造成线程死锁,异步不会,为什么呢? 2.同步执行串行队列和同步执行并行队列,有什么区别?同步执行,是在当前线程中执行队列中的任务,就意味着任务都在一条线程中执行,不可能多任务同时执行 ...
分类:
移动开发 时间:
2018-03-01 14:57:27
阅读次数:
258
很多时候需要用到这些小知识点,做做笔记一起成长 下面是需要异步执行的方法 我们需要执行以上的方法,异步中执行由于带有参数,所以我们需要代理这个方法,用一个变量来代替这一个方法,并且声明异步方法执行结束的回调方法 接着我们在需要执行此方法的地方,开始异步执行此方法,当然是利用代理方法执行 等异步方法执 ...
I/O的同步异步,阻塞非阻塞:阻塞:当执行的操作所需的数据还没准备好时,线程进行等待非阻塞:当数据还没准备好时,线程不等待同步:执行操作,一直等操作执行完才向下执行异步:执行操作,调用接口后不用等待,向下执行常用的 read() 和 write() 方法都是同步I/O。传统的I/O是阻塞式的。问题在于:当操作所需的数据没有准备好,如数据没有到达,线程会一直等待。为了解决这一问题,引入了NIO概念:
分类:
编程语言 时间:
2018-02-21 11:42:27
阅读次数:
179
Celery介绍Celery是一个基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery。软件架构环境*python3.6.4*django2.0*django-celery==3.2.1*django-kombu==0.9.4*celery-with-redis==3.0*celery==3.1.25目录结
分类:
其他好文 时间:
2018-02-13 18:00:02
阅读次数:
219
之前在想如何降低API的延迟,这些API里有几个比较耗时的操作且是串行执行,那通过异步执行的方式理论上可以降低运行的时间,如下图所示: 具体的实现比较简单,例如这样: 用java8引入的 即可。 这里不再赘述。 主要讲一下这样实践遇到的坑和一些自己的理解。 性能测试 优化后的代码需要和未修改(基准) ...
介绍: NSOperation是一个抽象类,并不具备封装操作的能力,必须使用它的子类; BlockOperation: 只要BlockOperation封装的操作数 > 1,就会异步执行操作,但是不会无限制的创建线程 结果: NSOperationQueue 创建队列 1.1 获取主队列以及添加操作 ...
分类:
编程语言 时间:
2018-01-29 20:19:10
阅读次数:
158
关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。 市面上的消息队列产品有很多,比如老牌的 ActiveMQ、RabbitMQ ,目前我看最火的 Kafka ,还有 ZeroMQ ,去年底阿里巴巴捐赠给 A ...
分类:
其他好文 时间:
2018-01-25 18:16:53
阅读次数:
191
1.gulp的API介绍 gulp.task(name[, deps], fn) 定义要实现的任务 name:必选,任务名称,自定义名称,不过注意名称中不要使用空格; deps:可选,一个包含任务列表的数组,在当前任务之前执行的任务,必须使用正确的异步执行方式:使用一个 callback,或者返回一 ...
分类:
其他好文 时间:
2018-01-24 22:15:25
阅读次数:
216