Amp

netty : NioEventLoopGroup 源码分析

前提是你 提交于 2021-02-13 14:00:25
1. 基本思路    这里首先讲一下结论,也就是先说我看这个类的源码整理出来的思路,主要就是因为这些类太杂,一个功能在好几个类中才完全实现。    我们在 new 一个 worker/boss 线程的时候一般是采用的直接使用的无参的构造方法,但是无参的构造方法他创建的线程池的大小是我们 CPU 核心的 2 倍。紧接着就需要 new 这么多个线程放到线程池里面,这里的线程池采用的数据结构是一个数组存放的,每一个线程需要设置一个任务队列,显然任务队列使用的是一个阻塞队列,这里实际采用的是 LinkedBlockQueue ,然后回想一下在 jdk 中的线程池是不是还有一个比较重要的参数就是线程工厂,对的!这里也有这个东西,他是需要我们手动传入的,但是如果不传则会使用一个默认的线程工厂,里面有一个 newThread 方法,这个方法实现基本和 jdk 中的实现一模一样,就是创建一个级别为 5 的非 Daemon 线程。对这就是我们在创建一个线程池时候完成的全部工作!    好现在来具体说一下,我们每次创建的是 NioEventLoopGroup 但是他又继承了 n 个类才实现了线程池,也就是线程池的祖先是 ScheduledExecutorService 是 jdk 中的线程池的一个接口,其中里面最重要的数据结构就是一个 children 数组,用来装线程的。   

大数据

我的未来我决定 提交于 2021-02-13 06:50:53
随着计算机系统在处理能力、存储能力等方面,特别是计算机软件技术的不断提高,使得信息处理技术得到飞速发展。 数据处理主要分为两大类:联机事物处理OLTP、联机分析处理OLAP。OLTP也就是传统的关系型数据库应用,主要功能是基本的、日常的事务处理操作,对响应时间要求非常高,是一种面向应用的生产系统。OLAP是基于数据仓库的面向主题的信息分析处理过程。 什么是数据仓库 与传统关系型数据库不同的是,数据仓库储存的是历史数据,针对数据仓库系统的查询大都非常复杂,特别消耗系统资源,对系统的可扩展能力和并行处理能力要求很高。数据仓库主要面向业务人员和管理人员,用来帮助企业管理人员作出更符合业务发展规律的决策,所以也称数据仓库为决策支持系统。数据仓库的数据来自多个数据库,并且按照预先定义好的模型对抽取的数据进行转换过滤,再将结果存放到数据仓库中。 Teradata 数据库 为了解决传统数据库在大量数据的查询分析等方面的局限性,Teradata公司推出了Teradata关系数据库管理系统。Teradata采用标准的SQL查询语言,适用于处理复杂查询数据仓库应用。 架构 Teradata的主要组件是解析引擎、BYNET和访问模块处理器(AMP)。 解析引擎负责从客户端接收查询命令并制定执行计划。 BYNET相当于网络层,它从解析引擎接收执行计划并发送给相应的AMP,AMP的选择采用哈希算法实现。

C的编译&预编译

你。 提交于 2021-02-13 06:50:34
编译器的主要工作; 源程序分析。语法分析、词法分析、语义分析、类型检查等等,这一阶段的目标是主要是检查代码有没有错误,就像我们常见的error和warning就是这个阶段确定的。 预处理。预处理器会展开目标模块导入的头文件和替换宏定义,预处理后生成 *.i文件。 编译。编译器将*.i文件编译成 ASCII 汇编语言文件*.s。 汇编。汇编器将 *.s文件汇编成一个可重定位的二进制目标文件*.o,Mac OS 和 iOS 中称为 Mach-O文件。 链接。链接分为动态链接和静态链接,链接器将所有的目标文件和系统目标文件组合起来,生成能在机器上运行的可执行文件。iOS 中为*.ipa,Windows 中为*.exe,Android 中为*.apk等 一:预处理   预处理主要进行宏定义分析、文件包含、根据条件决定是否编译等过程;预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并 对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。预处理过程中主要处理的指令有: 指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义,则编译下面代码 #elif 如果前面的

推荐 5 款好用的开源 Docker 工具

浪子不回头ぞ 提交于 2021-02-13 06:19:31
点击关注上方“ 杰哥的IT之旅 ”, 后台回复“ Python自动化 ”获取精心整理的PDF。 原文:https://dzone.com/articles/5-docker-utilities-you-should-know Docker 社区已经创建了许多开源工具,它们能帮我们处理各种用例。作者在本文中推荐了 5 款认为最有用的 Docker 工具,分别是 Watchtower(自动更新 Docker 容器)、docker-gc(容器和镜像的垃圾回收)、docker-slim(容器瘦身)、 rocker:突破 Dockerfile 的限制,以及 ctop(容器的类顶层接口)。 Docker 社区已经创建了许多开源工具,它们所能帮你处理的用例甚至会超出你的想象。 你可以在网上找到很多酷炫的 Docker 工具,其中大部分是开源的,都可以在 Github 上找到。在过去的两年里,我非常热衷于 Docker,在大多数开发项目中都使用了它。当你开始使用 Docker 后,你会发现它适用的场景比你最初预想的还更多。你会希望 Docker 尽可能为你多做一点事,而它不会让你失望的! Docker 社区非常活跃,每天都会出现许多有用的工具,时时关注社区中发生的所有创新是很困难的。为了帮助你,我收集了一些我在日常工作中使用的又有趣又实用的 Docker 工具,这些工具提升了我的工作效率

洛谷 P1015 回文数

China☆狼群 提交于 2021-02-13 02:51:45
https://www.cnblogs.com/Hisami/p/12350530.html 题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。 例如:给定一个十进制数56,将56加65(即把56从右向左读),得到121是一个回文数。 又如:对于十进制数87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884 在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。 写一个程序,给定一个N(2 ≤ N ≤ 10,N=16)进制数M(100位之内),求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出Impossible! 输入格式 两行,分别是N,M. 输出格式 STEP=ans 样例输入输出 输入 10 87 输出 STEP= 4 思路 ① 考虑到题目可能使用16进制输入,因此使用 字符数组 s 存储输入。 ② 由于需要进行加法运算,因此将字符数组转换为整型数组;C++的STL(标准模板库)中有 reverse()函数可以反转数组 ,因此使用vector<int>类型来定义转换后的 整型数组aInt 。 ③ 转换过程中,要注意对16进制中的字母作特殊处理: 非字母转换成数字: if

MySQL字符集与排序规则总结

可紊 提交于 2021-02-12 22:39:53
字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些 DBA 都会将这个混淆,当然这个情况也有一些情有可原的原因。一来两者本来就是相辅相成,相互依赖关联; 另外一方面, 有些数据库并没有清晰的区分开两者。例如, SQL Server 中字符集和排序规则就是合在一起的,创建一个新的数据库,只有一个 Collation 给你选择,并没有字符集选项概念,实际上你在选择一个 Collatin 时,就选定了数据库的字符集和排序规则,例如 Chinese_PRC_CI_AS 。在 MySQL 中,字符集和排序规则是区分开来的,你需要单独设置字符集和排序规则。当然 MySQL 字符集和排序规则也是相关联的。除非特殊需求,只要设置其一即可。设置字符集,即设置了 默认的排序规则。 我们先来搞清楚字符、字符集与字符编码的概念。相信很多人都在这些概念上犯过迷糊。什么是字符呢? 什么是字符集呢,什么有是字符编码呢? 字符( Charcter )是文字与符号的总称,包括文字、图形符号、数学符号等。 26 个英文字母属于字符,每个汉字也属于一个字符。 字符集是一组抽象的字符( Charcter )组合的集合。举一个例子,所有的汉字就算一个 “ 字符集合 ” , 所有的英语字母也算一个 “ 字符集合 ” 。 注意,我这里说它们是字符集合,而且还有双引号

前端 Tips 合集(2020 上半年)

我怕爱的太早我们不能终老 提交于 2021-02-12 15:43:25
【因微信发文后无法变更,而本文需要一直更新,请在后台回复 “ tips2020A ” 获取本文最新地址】 #01 require.main === module 的使用 #02 将 arguments 转换成 Array 的最佳实践 #03 简写的 border-radius 100% 和 50% 是等效的 #04 用 process.hrtime 获取纳秒级的计时精度 #05 将异步函数 promise 化 本文分享自微信公众号 - JSCON简时空(iJSCON)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/125386/blog/4347599

Google Play 开发者播客节目全新上线

℡╲_俬逩灬. 提交于 2021-02-12 14:42:25
https://juejin.im/post/5e6231156fb9a07c994bec28 今天,我们要向大家推出一档播客节目 —— "Apps, Games & Insights"。节目将围绕移动互联网、应用和游戏业务,以及其他更广泛的行业展开,探讨当下最热门的一些话题。内容涵盖了行业专家的独到见解、幕后故事和实战经验。 本系列旨在挑战、激发思想 —— 无论您是设计师、开发者,亦或是产品经理和营销人员,希望您都能从我们的节目中获得启发。 这档播客节目由两位 Google 员工 —— Tamzin Taylor (西欧 Google Play 应用及游戏商务拓展负责人) 和 Dirk Primbs (EMEA 地区生态系统及开发者关系负责人) 共同主持*。在帮助合作伙伴进行 Android 开发、移动互联网、应用和游戏以及业务拓展等方面,他们有着多年的经验。每周他们都将邀请不同的嘉宾做客节目。 本播客目前为英文节目,我们将陆续为大家带来中文访谈。 抢先剧透 为我们揭开本季序幕的是来自 Crowdstar 的 Judy Chen 和 Sarah Fuchs,他们开发了 Covert Fashion 和 Design Home 。两位开发者将和我们一起探讨: 如何通过将游戏、玩家和游戏开发者纳入全局考量,以此来 建立长线的游戏业务 。 您是否考虑过出售您的应用或游戏业务

MTD应用学习札记【转】

本小妞迷上赌 提交于 2021-02-12 12:56:32
转自: https://blog.csdn.net/lh2016rocky/article/details/70885421 今天做升级方案用到了 mtd-utils中的 flash_eraseall和 flash_cp两个工具,在进行方案验证的时候,遭遇到各种不解和疑惑,因对 MTD的原理不熟悉,所以只能多次尝试,虽然最后把方案搞定了,不过觉得 MTD中的 mtd和 mtdblock区别这块还是值得总结学习一下。这里先说明一下问题现象,然后在进行具体的区别原理解释。 MTD 设备 (Nor Flash) 使用中的问题现象表现 mtd-utils 工具对mtd 和mtdblock 分区设备的区别处理 / $ flash_eraseall /dev/mtdblock/2 flash_eraseall: /dev/mtdblock/2: unable to get MTD device info / $ flash_eraseall /dev/mtdblock/2 flash_eraseall: /dev/mtdblock/2: unable to get MTD device info / $ flash_eraseall /dev/mtd/2 Erasing 128 Kibyte @ 8e0000 -- 98 % complete. / $ ls / $ flashcp

DNS_PROBE_FINISHED_NXDOMAIN & MacOS

我只是一个虾纸丫 提交于 2021-02-11 20:42:27
DNS_PROBE_FINISHED_NXDOMAIN 内网 DNS bug 8.8.8.8 8.8.4.4 # new inner Wi-Fi 10.1.3.10 10.1.3.13 Windows https://www.wiknix.com/how-to-fix-dns_probe_finished_nxdomain-in-chrome/ MacOS DNS 刷新 https://www.apple.com/cn/search/DNS?src=globalnav https://www.apple.com/cn/search/DNS-%E5%88%B7%E6%96%B0?src=serp https://blog.csdn.net/u013356066/article/details/52162889 https://blog.csdn.net/zhaoxiaoruiR/article/details/82459788 https://jingyan.baidu.com/article/154b4631aa51bb28ca8f4114.html https://www.lifewire.com/network-preference-pane-change-macs-dns-settings-2260394 https://beebom.com/dns_probe