Java高并发 - 17.读写锁分离设计模式
在多线程的情况下访问共享资源,需要对资源进行同步操作以防止数据不一致的情况发生,通常可以使用synchronized关键字或者显式锁。 对资源的访问一般包括两种类型的动作——读和写。多个线程同时对资源进行读操作并不会引起数据不一致的问题,这时直接采用排他的方式加锁,就显得过于简单粗暴。可以通过实现一个读和写分离的锁提升程序性能。
Java高并发 - 15.监控任务的生命周期
Thread为我们提供了可获取状态,以及判断是否alive的方法,但是这些方法是针对线程本身的,我们无法获得提交的任务的状态。一般情况下想要获得最终结果,我们不得不为Thread和Runnable传入共享变量。但是在多线程的情况下,共享变量将导致资源的竞争从而增加了数据不一致的隐患。
Java高并发 - 14.单例设计模式
本文介绍7种实现单例设计模式的方法。
Leetcode - 42.Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.
Leetcode - 4.Median of Two Sorted Arrays
有两个有序数组num1和num2,数组长度分别为m和n。找出这两个有序数组的中位数,要求时间复杂度在O(log(m+n))以内。
数据挖掘 - 贝叶斯信念网络
贝叶斯信念网络是一种概率的图模型。与朴素贝叶斯分类不同的是它允许表示属性子集之间的依赖关系。贝叶斯信念网络说明联合条件概率分布,允许在变量的子集间定义类条件独立性。
数据挖掘 - 组合方法
组合分类器是一个复合模型,由多个分类器组合而成,能有效提高分类的准确率。装袋、提升和随机森林都是流行的组合分类方法。
数据挖掘 - 贝叶斯分类
贝叶斯分类法是基于贝叶斯原理的统计学分类方法。可以预测类隶属关系的概率,如一个给定的元组属于一个特定类的概率。分类效果可以与决策树和经过挑选的神经网络分类器相媲美。 朴素贝叶斯分类法嘉定一个属性值在给定类上的影响独立于其他属性的值。这一假定称为类条件独立性,我们也因此称为“朴素的”。
数据挖掘 - 决策树归纳
决策树归纳是从有类标号的训练元组中学习决策树。决策树是一种类似流程图的结构。决策树种的每个内部节点表示一个属性上的测试,每个分枝代表该测试的一个输出,每个叶结点代表一个类。
Markdown语法
Markdown 的目标是易读易写。Markdown的语法都是精挑细选的符号,而不像html一般充满标签,以纯文本发布也是具备可读性的。使用Markdown编写的文件能轻松转换成html、doc或pdf。