主要基于从kafka0.11.0版本开始之后的版本进行描述 1、批处理 传统消息中间件,一次只发送单挑消息;kafka,一次发送多条消息,微批处理。 2、客户端优化 新版客户端摒弃单线程,采用双线程模式——主线程+Sender线程。 主线程负责将消息置入客户端缓存(缓存会将多个消息聚合为1个批次); ...
分类:
其他好文 时间:
2020-05-02 16:43:55
阅读次数:
56
Nodejs一直以单线程异步IO著称,擅长IO密集型操作,不擅长CPU密集型操作。但是,新版的Nodejs,在不断弥补这方面的短板。 在 Node 10.5.0,官方给出了一个实验性质的模块 worker_threads 给 Node 提供了真正的多线程能力 在 Node.js 12.11.0,wo ...
分类:
编程语言 时间:
2020-05-02 00:25:11
阅读次数:
87
什么是多线程,这在相关计算机原理的书籍里都有介绍,通常所说的多线程是指进程内的多线程,由进程创建一个私有线程表,自行管理自己的线程,这样好处是线程阻塞了,只会挂起进程,而不会影响到整个操作系统的运行。每个线程都有自己的栈,每创建一个线程就会分配一定的资源给线程,这就是为什么说要谨慎使用线程,否则会造 ...
分类:
编程语言 时间:
2020-05-01 18:39:13
阅读次数:
59
redis分布式锁。 redis单线程理解: redis操作基于命令,在一个命令执行过程中,其他命令处于等待排队状态。不可能同时执行两个命令。 故redis很适合锁分布式锁 代码: 1 private static String lockKey = "myLockKey"; 2 3 /** 4 * ...
分类:
其他好文 时间:
2020-04-30 21:36:53
阅读次数:
72
作者:心叶时间:2018-05-01 18:45 我们都知道,浏览器执行js代码是单线程的,当页面脚步执行时,页面是没办法响应别的的,直到脚步的结束,而这里介绍的WebWorkers就可以改变这一切。 WebWorkers是运行在后台的js代码,独立于其他脚本,不会影响页面的性能。我们可以继续做任何 ...
分类:
编程语言 时间:
2020-04-29 23:15:28
阅读次数:
52
原文请查阅这里,略有改动。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第四章。 现在,我们将会通过回顾单线程环境下编程的弊端及如何克服这些困难以创建令人惊叹的 JavaScript 交互界面来展开第一篇文章。老规矩,我们将会在本章末尾分享 5 条利用 a ...
分类:
编程语言 时间:
2020-04-29 18:33:05
阅读次数:
66
Python来实现并发的Web Server,其中采用了多进程、多线程、协程、单进程单线程非阻塞的方式。 一、使用子进程来实现并发Web Server 参照 https://www.cnblogs.com/leokale-zz/p/11949208.html 中的代码,我们将其修改为支持并发的简单W ...
分类:
编程语言 时间:
2020-04-27 19:24:03
阅读次数:
58
javascript 是一个单线程的脚本 js 在事件循环中分为同步任务和异步任务 同步任务:直接执行 异步任务:同步任务之后执行 js 在事件循环流程: 1>js中含有一个主线程,以及一个调用栈(也叫执行栈) 2>所有的同步任务都在调用栈中,调用栈都在主线程上执行 3>主线程之外还有要一个“任务队 ...
分类:
Web程序 时间:
2020-04-27 09:45:15
阅读次数:
80
一.Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、 ...
分类:
其他好文 时间:
2020-04-25 12:25:23
阅读次数:
55
一、为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。 JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题 ...
分类:
Web程序 时间:
2020-04-24 22:05:45
阅读次数:
115