需求背景 利用线程来模拟生产者和消费者模型 系统建模 这个系统涉及到三个角色,生产者,消费者,任务队列,三个角色之间的关系非常简单,生产者和消费者拥有一个任务队列的引用,生产者负责往队列中放置对象(id),消费者负责从队列中获取对象(id),其关联关系如下 方案1 因为是多线程操作,所以对任务的存取 ...
分类:
编程语言 时间:
2017-09-18 13:28:57
阅读次数:
278
假如面试回答js的运行机制时,你可能说出这么一段话:“Javascript的事件分同步任务和异步任务,遇到同步任务就放在执行栈中执行,而碰到异步任务就放到任务队列之中,等到执行栈执行完毕之后再去执行任务队列之中的事件。”但你能说出背后的原因吗? 1.线程与进程 进程:是系统资源分配和调度的单元。一个 ...
分类:
编程语言 时间:
2017-09-17 20:53:59
阅读次数:
203
Celery队列简介: Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery. 使用场景: 1.你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回, ...
分类:
编程语言 时间:
2017-09-10 00:10:18
阅读次数:
144
1.JavaScript的单线程机制 2.任务队列(同步任务和异步任务) 3.事件和回调函数 4.定时器 5.Event Loop事件循环 一、JavaScript的单线程机制,JavaScript的使用单线程是由其主要用途有关,JavaScript是在用户互动、操作DOM元素,如果使用多线程则会带 ...
分类:
编程语言 时间:
2017-09-09 00:43:47
阅读次数:
218
上面的代码只会打印1 然会就会线程卡死,这是为什么呢? 因为dispatch_get_main_queue()得到的是一个串行队列,串行队列的特点: 一次只调度一个任务,队列中的任务一个接着一个地执行(一个任务执行完毕后,再执行下一个任务) 同步(sync) 操作,它会阻塞当前线程并等待 Block ...
分类:
其他好文 时间:
2017-09-03 14:51:30
阅读次数:
149
top命令经常用来监控linux的系统状况,比如cpu、内存的使用。 第一行: 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 第三行: cpu状态 us — 用户空间占用CPU的百分比。 sy — 内核空间占用CPU的百分比。 ni — 改变过优先级的 ...
分类:
系统相关 时间:
2017-09-01 00:52:27
阅读次数:
308
最近在处理很多的数据,数据量比较大,但是处理的相对简单一些,没有什么复杂的业务逻辑,然后就使用了多线程去处理。因为一直停留在Thread和Runnable的知识中,项目中使用Callable,刚好可以学习新的东西,就使用了Callable和Future结合加上Executors.newFixedTh ...
分类:
其他好文 时间:
2017-08-27 17:05:38
阅读次数:
240
[TOC] 本文基于Linux2.6.32内核版本号。 引言 软中断、tasklet和工作队列并非Linux内核中一直存在的机制,而是由更早版本号的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包含五种,但2.6版本号的内核中。下半部和任务队列的函数都消失了,仅仅剩下了前三 ...
分类:
系统相关 时间:
2017-08-19 17:13:36
阅读次数:
297
工作原理 1、线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。 2、当调用 execute() 方法添加一个任务时,线程池会做如下判断: a. 如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务; b. ...
分类:
编程语言 时间:
2017-08-17 15:15:56
阅读次数:
298
假如面试回答js的运行机制时,你可能说出这么一段话:“Javascript的事件分同步任务和异步任务,遇到同步任务就放在执行栈中执行,而碰到异步任务就放到任务队列之中,等到执行栈执行完毕之后再去执行任务队列之中的事件。”但你能说出背后的原因吗? 先理解相关概念 线程与进程 进程:是系统资源分配和调度 ...
分类:
编程语言 时间:
2017-08-13 16:30:34
阅读次数:
291