- 博客(33)
- 资源 (12)
- 问答 (41)
- 收藏
- 关注
原创 ForkJoin全解——深度剖析ForkJoin源码
说明本文对forkjoin源码进行了深入的剖析,包含你想了解的关于forkjoin的几乎所有内容由于篇幅太大,将原文拆分为4个部分,新手建议按照顺序阅读,不建议跳读目录一、ForkJoin全解1:简单使用与大致实现原理二、ForkJoin全解2:forkjoin实际工作流程与实现三、ForkJoin全解3:CountedCompleter四、ForkJoin全解4:附录,奇数自加的离散性...
2020-06-20 21:39:22
659
原创 ForkJoin全解4:附录,奇数自加的离散性
/** * 求一个hash,然后把hash的结果作为数组的位置,放入元素,即array[hash]不为空 * 现在这个算法是把每次自加后的值作为数组下标,占据该下标对应的数组位置,数组被占* 据过的位置的值会被置为1,未被占据过的位置值为null。如果在占据数组中对应位置发现* 该位置之前被占据过,这时候就是产生了冲突。如果最后没有冲突,也没有不为null的位置* 则说明离散性很好**/public class HashTest{ //数组长度必须是2的指数幂 pr.
2020-06-20 21:29:51
282
原创 ForkJoin全解3:CountedCompleter
1、使用示例import java.util.concurrent.CountedCompleter;import java.util.concurrent.atomic.AtomicInteger;public class CountedCompleterDemo { interface Applier<E>{ void apply(E e); } static class ForEach<E> extends CountedCo
2020-06-20 21:28:26
720
原创 ForkJoin全解2:forkjoin实际工作流程与实现
1、相关概念解释1.1 “内部”和外部当一个操作是在非ForkjoinThread的线程中进行的,则称该操作为外部操作。比如我们前面执行pool.invoke,invoke内又执行externalPush。由于invoke是在非ForkjoinThread线程中进行的(这里是在main线程中进行),所以是一个外部操作,调用的是externalPush。之后task的执行是通过ForkJoinThread来执行的,所以task中的fork就是内部操作,调用的是push,把任务提交到工作队列..
2020-06-20 21:19:21
1973
1
原创 ForkJoin全解1:简单使用与大致实现原理
1、 使用示例import java.lang.reflect.Method;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.RecursiveTask;import java.util.concurrent.ThreadLocalRandom;public class ForkJoinDemo { public static void main(String[] args) throws E..
2020-06-20 12:15:04
514
原创 JDK8 Stream源码完全解析——手写Stream
1、说明本文代码基本参照JDK的实现,类名,接口名,属性名等都跟JDK保持一致2、Stream核心原理与基本概念2.1 流实现核心原理:opWrapsinkJDK stream以Spliterator作为Stream的数据源,用以提供需要被操作的数据,而Sink则作为输出,存储输出结果。同时JDK stream内还有很多操作,如filter,collect,flatmap等,有时也称操作为算子。每个sink都有一个accept方法,用于接收元素。为说明流实现原理,假设filter的sin
2020-06-20 11:51:07
2244
原创 kafka系列8----小结与面试题
现在你已经看完kafka,可以问自己如下几个问题,看自己掌握得如何为什么选择kafka而不是其他JMS?其优势是什么,应用场景有哪些易上手,吞吐量高 2.你的业务真的需要kafka吗?使用kafka会带来运维成本,如果你的业务数据量小到可以不用kafka时,就不用kafka。比如你的系统就几个用户使用,然后你用kafka实现一个异步短信功能给,给他们发短信,那就有点杀鸡用牛刀了...
2020-01-04 00:32:50
354
原创 kafka系列7----kafka配置与其他杂项
1、配置参考:http://kafka.apache.org/22/documentation.html#configuration1.1 broker配置broker.id默认值是0,这个值在整个 Kafka 集群里必须是唯一的 2. port如果使用配置样本来启动 Kafka,它会监听 9092 端口 3. zookeeper.connect用于保...
2020-01-04 00:28:57
152
原创 kafka系列6----kafka API
1、说明仅列出一些较少用到的API,常用API比较简单,参考官网即可1、Streams API依赖:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams</artifactId> <versi...
2020-01-04 00:19:09
183
原创 kafka系列5----kafka使用场景
Kafka具有可靠存储数据的特性,可用来存储重要的支付数据, 或者与离线系统进行交互,系统可间歇性地加载数据,也可在停机维护后再次加载数据。1、kafka作为消息系统kafka的本职工作2、kafka作为存储系统数据写入Kafka后被写到磁盘,并且进行备份以便容错。直到完全备份,Kafka才让生产者认为完成写入,即使写入失败Kafka也会确保继续写入Kafka使用...
2020-01-04 00:12:53
312
原创 kafka系列4----kafka高性能内幕
1、分区机制的gao'高伸缩性传统的消息系统有两个模块: 队列 和 发布-订阅。而kafka对消息的消费是基于组的。当仅有一个组时,就相当于队列,当有多个组,那就是发布-订阅。所以kafka中,队列和发布订阅的转换很简单,通过增加或减少组即可。所以kafka用一种统一的方式实现了队列和发布订阅。kafka的实现,还有个巨大的好处,就是高伸缩性:一个topic中的一个分区,可以由群组中的一个...
2020-01-04 00:10:47
276
原创 kafka系列3----可靠性与运维
1、说明注意,本文说的副本包括Leader和Follower副本2、复制Kafka 允许 topic 的 partition 拥有若干副本,你可以在server端配置partition 的副本数量。当集群中的节点出现故障时,能自动进行故障转移,保证数据的可用性。正常情况下, 每个分区都有一个 leader 和零或多个 followers 。 总的副本数是包含 leader 的总和。 所...
2020-01-04 00:00:42
506
原创 kafka系列2---kafka数据存储原理
1、kafka高性能文件读写设计原理kafka中的数据是以日志的形式进行存储,所以分区实际上就是日志。1.1磁盘读写并不慢磁盘线性读写的速度比随机读写的速度快6000倍。现代操作系统提供了 read-ahead 和 write-behind 技术,read-ahead 是以大的 data block 为单位预先读取数据,而 write-behind 是将多个小型的逻辑写合并成一...
2020-01-03 23:36:22
649
原创 kafka系列1----简单使用
1、简单使用1、1 安装zookeepeper并启动启动kafka自带的zookeeper(建议独立安装zookeeper并配置启动。)zookeeper-server-start ../../config/zookeeper.propertieszookeeper.properties在kafka主目录下的config目录中 也可以直接使用自己下载并独立安装的zooke...
2020-01-03 18:26:41
511
原创 Oracle复合类型:嵌套表、可变数组与索引表
一、 在pl/sql中使用嵌套表和可变数组1、在pl/sql中使用嵌套表在PL/SQL中使用嵌套表,此时嵌套表就相当于其他语言中的数组。①、示例:set SERVEROUTPUT ONDECLARE --下面这句是嵌套表声明的TYPE ename_array_type is table of emp.ename%TYPE ;--定义一个游标CURSOR ename_cursor
2017-02-24 11:04:13
2370
转载 oracle索引组织表(Index Organizied Table)
索引组织表(index organized table, IOT)就是存储在一个索引结构中的表。存储在堆中的表是无组织的(也就是说,只要有可用的空间,数据可以放在任何地方),IOT中的数据则按主键存储和排序。对你的应用来说,IOT表和一个“常规”表并无二致。索引组织表的数据按主键排序手段被存储在B-树索引中,除了存储主键列值外还存储非键列的值。普通索引只存储索引列,而索引组织表则存储表的所有列的值。
2017-02-13 17:14:38
4544
转载 Oracle 11g 的新特性 —— 虚拟列
今天我将为大家解释 Oracle 11g 数据库的新特性 —— 虚拟列介绍在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引。现在 Oracle 11g 允许我们直接在表上使用虚拟列来存储表达式。
2017-02-13 11:12:21
405
转载 CMS垃圾收集器介绍
一.总体介绍: CMS是一款优秀的垃圾收集器。众所周知,在oracle公司的Hotspot的架构中,大体上采用分代回收的机制。其中出生代又采用了拷贝复制的方法。如果对象在初生代内存活超过一定次数之后,就可以晋升到老生代中,而CMS垃圾收集器就是专门用来对老生代做收集。随着现代硬件的发展,更多的企业及服务最关注的点在GC的停顿时间,而CMS恰好是一种以获取最短回收停顿时间为目标的收集器
2017-01-04 16:25:39
745
原创 Javascript原型
一、 说明由于proto仅谷歌等部分浏览器支持,而IE低版本不支持,所以为了表述方便,下面说对象的原型时,直接就用prototype(如果偶尔看到proto,可能是笔误,也请不要深究,原理能明白即可) 绘图说明:像下面这样的,表示t2的原型prototype指向SuperType的原型二、 初识原型JS的function类型会内置一个特殊的属性prototype。通常prototype是Objec
2016-06-01 16:04:45
533
原创 JS对象高级属性:数据属性与访问器属性
一、说明:使用以下介绍的高级属性,需要注意浏览器是否支持。高版本浏览器,如ie9+通常支持。另外需要说明的一点,这里所说对象包括function和Object,而不是单指Object二、数据属性:Configurable:true|false,表示能否通过delete将属性删除,默认为true。当把属性的Configurable设置为false后,该属性不能通过delete删除,并且也无法再将该属性
2016-06-01 15:51:45
6688
原创 Javascript对象创建
一、单一方式创建1、new形式var person=new Object();person.name=”Leo”;如果直接new完就了事,那没什么问题。如果new完还需要扩展属性,可以考虑使用工厂进行封装。工厂的使用下面有叙述。2、字面量形式 var person={name:”Leo”}; 在构建函数参数,或者配置参数等场合中很是常见。3、工厂模式、寄生构造函数模式与稳妥构造函数模式func
2016-06-01 15:47:16
364
原创 Javascript原型相关的函数
一、isPrototypeOf测试一个对象的原型是否是一个类的原型的方法。例如 function Person(){} Person.prototype.name=”Leo”; var p1=new Person(); Person.prototype. isPrototypeOf(p1);//将会返回true,这句代码的意思是,Person的 //原型是否是p1的原型二、Object.g
2016-06-01 15:38:48
313
原创 JavaScript数据类型、类与对象
一、理解JS数据类型,类与对象的关系1、JS数据类型分两种:一种是基本类型,另一种是引用类型 基本类型有string,number,boolean,null,undefined等。另一种是引用类型,function,object(注意都是首字母小写的)。基本类型之间,是没有继承关系的。就像在java中,int与char相互直接是没什么直接关系的。这七种类型就是JS最基础的元素了。所以在这里暂且称这
2016-06-01 15:35:44
439
原创 Javascript继承
一、原型链继承方式1、原形链继承做法 示例:function SuperType(){ this.property=true;}Super.prototype.getSuperValue=function(){ return this.property;}function SubType(){ this.subProperty=fa
2016-06-01 15:26:13
391
原创 Javascript apply与call函数详解
一、apply1、apply的作用:委托或者代理一个方法 apply的作用,说白了,其实就是用来调用一个函数,并更改被调用函数的this所指向的对象的。我觉得其实apply就是委托或者代理。这句话看着有点抽象,先看下面例子再回看这句话2、示例1:无参的和一个参数的apply apply()的参数为空时,默认调用全局对象var x = 0;function test(){ alert(thi
2016-06-01 15:17:08
463
转载 Javascript this关键字
Javascript this关键字 经常this使用上比较混乱,所以总结一下。 Javascript中的this其实跟java、C++等oo语言的含义,其实没有什么太大不同,但是由于javascript自身的特殊性,函数既是函数也是对象,导致this容易混淆。有人说this指的是,调用函数的那个对象。为了与其他oo语言的this概念统一一下,说this指向当前对象也没有什么不妥。 情况一:纯
2016-06-01 14:50:10
334
原创 jquery事件委托off与on连用无效的问题
jquery事件委托off与on连用无效的问题: 问题引出: 事件委托是一种非常常用的事件解决方案,也是很多人推荐作为首选的解决方案(事件委托有什么好处,为何推荐,跟本文要说的内容无关,可自行百度)。我们在事件处理的时候可能会这么用$selector.off(相关参数).on(相关参数)以防止重复委托事件。结果发现这种使用方式并不能起到防止重复委托事件的效果。先来个例子<body>
2015-11-20 18:37:47
4766
原创 C++explicit关键字
先上代码: #includeusing namespace std;class stack{public:stack(int size);stack();};int main(){// stack* s=new stack(40);stack s;s=40;// s=40;// coutreturn 0;}这里有个奇怪的地
2015-03-04 22:29:31
305
原创 C++ private成员变量作用域的扩展
先上代码:templateclass myclass{private:T value;public:void assign(const myclass& x){value=x.value;cout}};这里value是一个private变量,在assign函数中传递了一个myclass的参数x,并使用了x的value。注意value是一个
2015-02-27 12:14:25
739
原创 Java继承并非是简单的代码复制
继承是软件复用的一个关键,但是继承并非是简单的代码复制:即类A继承了类B,并不只是类A有了类B的代码。因为java是可以向上转型的,即B=new A()是合法的,而若有另一个类C,也从B继承,下面这行代码将报错:B=new C()。更加具体的代码如下所示:public class TestFactory {public static void main(String args[])
2015-02-10 17:40:04
1382
转载 java之yield(),sleep(),wait()区别详解-备忘笔记
1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的
2015-02-04 10:21:08
334
Intel 7 Series C216 Chipset Family Platform Controller Hub
2022-04-23
Broadcom官方 CentOS7 64位无线网卡驱动,带一键安装脚本,自动编译和安装,解决make过程中的错误
2022-01-04
英特尔64和 IA-32 体系结构的软件开发人员手册卷4-特定模型寄存器.pdf
2021-04-21
英特尔64和 IA-32 体系结构的软件开发人员手册卷3-系统编程指南.pdf
2021-04-21
英特尔64和 IA-32 体系结构的软件开发人员手册卷2-指令集参考.pdf
2021-04-21
英特尔64和 IA-32 体系结构的软件开发人员手册卷1-基础架构.pdf
2021-04-21
红黑树最坏情况为何不是退变为链表的情况?
2019-01-09
求大侠帮忙运行eclipse自动生成的osgi ds示例
2018-09-13
win7装openssh for window后,怎么用putty进行连接
2017-09-29
JPA,hibernate基于主键的一对一级联删除
2017-04-15
JS中为何Function是Object的实例?
2016-12-15
怎么更改mysql创建表时varchar字段默认编码为utf-8
2016-11-03
关于Java线程的isInterrupted方法问题
2016-08-12
在Java并发中,对象尚未被完全创建的问题
2016-08-08
xsd的key与keyref到底有什么用
2016-06-29
Java怎么用命令符编译我下面这个文件
2016-05-30
Less怎么去除重复代码
2016-04-14
麻烦帮忙看一个很诡异的CSS高度设置的问题
2016-04-02
windows怎么让批处理不退出
2016-03-28
Javascript中API文档书写的问题
2016-03-27
麻烦帮忙看下这个SQL查询该怎么改进
2016-03-06
麻烦帮忙看看这段关于java的序列化的代码,摘自Effective Java
2016-03-03
oracle11g怎么同时使用多个数据库实例
2016-01-14
求帮忙优化我这条sql语句
2016-01-06
怎么让jsp修改后不用发布,直接保存即可生效
2016-01-04
sql查询,请问以下查询功能如何实现
2015-12-12
js对象访问内部属性的问题
2015-11-09
域名怎么解析到网站空间
2015-11-02
bootstrap 堆叠顺序的问题
2015-10-24
用hibernate实现sqlserver分页的问题
2015-10-20
jquery on重复事件绑定
2015-10-05
想请教下各位关于java接口设计的问题
2015-09-13
数据库如何在查询出记录的同时,统计记录有多少行
2015-08-07
数据库或hibernate多对多查询的问题
2015-08-01
java poi getInpuStream报错
2015-07-30
求帮忙看一下datatables的一个很怪异的错误
2015-07-12
请大神帮忙看下datatables的一个错误
2015-07-09
想问下各位优快云技术问答,点击我要提问的这么个效果是怎么实现的?
2015-06-23
用jquery ajax的load方法后,怎么再次获得load的url信息
2015-06-15
SQL2012 management打开提示无法创建窗口
2015-06-11
怎么判断当前取出的数据是数据库相应的表中的最后一条
2015-06-03
jquery $.post 或者$.get回调函数的参数值有没有办法取出来
2015-05-30
百度echarts官方实例动态数据怎么跑起来?一直粘贴官方代码,就是跑不起来。
2015-05-24
百度echarts画折线图显示不出来,画柱状图则正常
2015-05-24
struts2把Action配成login就报错,配成其他的就不会,这是为何?
2015-04-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人