自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunhaoning的专栏

技术杂谈

  • 博客(17)
  • 资源 (17)
  • 收藏
  • 关注

原创 Spark基础transformation操作实例(Scala版)

1.map算子def map() { val conf = new SparkConf() .setAppName("map") .setMaster("local") val sc = new SparkContext(conf) val numbers = Array(1,2,3,4,5) val n

2017-04-23 19:08:38 408

原创 Spark基础transformation操作实例(Java版)

1.map算子任何类型的RDD都可以调用map算子;在java中,map算子接收的参数是Function对象,在Function中,需要设置第二个泛型类型为返回的新元素的类型;同时,call()方法的返回类型也需要与第二个泛型的返回类型一致。在call()方法中,对原始RDD中的每一个元素进行各种处理和计算,并返回一个新的元素,所有新的元素组成一个新的RDD。private static

2017-04-23 17:21:35 1272

转载 Java回调机制解读

www.cnblogs.com/xrq730/p/6424471.html

2017-04-19 13:18:33 243

原创 《Java高并发程序设计》学习 --7.11 软件事务内存

在一些函数式编程语言中,支持一种叫做软件事务内存(STM)的技术。这里的事务和数据库中所说的事务非常类似,具有隔离性、原子性和一致性。与数据库事务不同的是,内存事务不具备持久性。在很多场合,某一项功能可能要由多个Actor协作完成。在这种协作事务中,如果一个Actor处理失败,那么根据事务的原子性,其他Actor所进行的操作必须要回滚。下面,看一个简单的案例。假设有一个公司要给它的员工发福

2017-04-10 22:55:03 983

原创 《Java高并发程序设计》学习 --7.10 多个Actor同时修改数据:Agent

在Actor的编程模型中,Actor之间主要通过消息进行信息传递。因此,很少发生多个Actor需要访问一个共享变量的情况。但在实际开发中,这种情况很难完全避免。如果多个Actor需要对同一个共享变量进行读写时,如何保证线程安全呢?在Akka中,使用一种叫做Agent的组件来实现这个功能。一个Agent提供了对一个变量的异步更新。当一个Actor希望改变Agent的值时,它会向这个Agent下发

2017-04-10 22:51:41 896

原创 《Java高并发程序设计》学习 --7.9 询问模式:Actor中的Future

由于Actor之间都是通过异步消息通信的。当发送一条消息给一个Actor后,通常只能等待Actor的返回。与同步方法不同,在发送异步消息后,接受消息的Actor可能还根本来不及处理你的消息,而调用方就已经返回了。这种模式与之前提到的Future模式非常相像。不同之处只是在传统的异步调用中,进行的是函数调用,但在这里,发送了一条消息。public class AskMain { publi

2017-04-09 11:34:15 631

原创 《Java高并发程序设计》学习 --7.8 Actor的内置转换状态

一个Actor内部消息处理函数可以拥有多个不同的状态,在特点的状态下,可以对同一消息进行不同的处理,状态之间也可以任意切换。现在模拟一个婴儿Baby,假设婴儿会拥有两种不同的状态,开心或者生气。当带他玩的时候,他总是表现出开心状态,当让他睡觉时,他就会非常生气。在这个简单的场景模拟中,会给这个婴儿Actor发送睡觉和玩两种指令。如果婴儿正在生气,还让他睡觉,他就会说“我已经生气了”,如果你

2017-04-09 11:31:13 305

原创 Scala学习--函数式编程

将函数赋值给变量//scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量//scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线def sayHello(name:String) { println("Hello," + name)}val sayHelloFunc = sayHello _sayHelloFunc("le

2017-04-09 08:23:28 622

转载 Scala学习--Trait

将trait作为接口使用//scala中的Trait是一种特殊的概念//在Trait中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可//类可以使用extends关键字继承Trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是Trait,统一都是extends//类继承Trait后,必须

2017-04-08 20:28:56 502

原创 《Java高并发程序设计》学习 --7.7 消息路由

Akka提供了非常灵活的消息发送机制。有时候,会使用一组Actor而不是一个Actor来提供一项服务。这一组Actor中所有的Actor都是对等的,也就是说可以找任何一个Actor来服务。这种情况下,如何才能快速有效地找到合适的Actor?或者说如何调度这些消息,才可以使负载更为均衡地分配在这一组Actor中。为了解决这个问题,Akka使用一个路由器组件(Router)来封装消息的调度。系统提

2017-04-08 17:22:40 1139

原创 《Java高并发程序设计》学习 --7.6 消息收件箱(Inbox)

Akka框架准备了一个叫做“收件箱”的组件,使用收件箱,可以很方便地对Actor进行消息发送和接收,大大方便了应用程序与Actor之间的交互。下面定义了当前示例中唯一一个Actor:public class MyWorker extends UntypedActor { private final LoggingAdapter log = Logging.getLogger(getCon

2017-04-08 17:18:08 813

原创 《Java高并发程序设计》学习 --7.5 Akka之选择Actor

Akka提供了一个ActorSelection类,用来批量进行消息发送,示意代码如下:for(int i=0; i<WORDER_COUNT; i++) {workers.add(system.actorOf(Props.create(MyWorker.class,i), "worker_" + i));}ActorSelection selection = getContext().

2017-04-08 17:15:02 1766

原创 《Java高并发程序设计》学习 --7.4 Akka之监督策略

Akka框架赋予了足够的控制权。在Akka框架内,父Actor可以对子Actor进行监督,监控Actor的行为是否有异常。大体上,监督策略可以分为两种:一种是OneForOneStrategy的监督,另一种是AllForOneStrategy。对于OneForOneStrategy的策略,父Actor只会对出问题的子Actor进行处理,比如重启或者停止,而对于AllForOneStrategy

2017-04-07 14:17:24 962

原创 《Java高并发程序设计》学习 --7.3 Akka之Actor的生命周期

一个Actor在actorOf()函数被调用后开始建立,Actor实例创建后,会回调preStart()方法。在这个方法里,我们可以进行一些资源的初始化工作。在Actor的工作过程中,可能会出现一些异常,这种情况下,Actor会需要重启。当Actor被重启时,会回调preRestart()方法(在老的实例上),接着系统会创建一个新的Actor对象实例(但它们都表示同一个Actor)。当新的Acto

2017-04-07 08:41:10 640

原创 《Java高并发程序设计》学习 --7.2 Akka之有关消息投递的一些说明

整个Akka应用是由消息驱动的。消息是除了Actor之外最重要的核心组件。作为在并发程序中的核心组件,在Actor之间传递的消息应该满足不可变性,也就是不变模式。因为可变的消息无法高效的在并发环境中使用。理论上Akka中的消息可以使用任何对象实例,但实际使用中,强烈推荐使用不可变对象。一个典型的不可变对象的实现如下:public final class ImmutableMessage {

2017-04-07 08:34:33 1046

原创 《Java高并发程序设计》学习 --7.1 Akka之Hello World

首先看一下,第一个Actor的实现:public class Greeter extends UntypedActor { public static enum Msg { GREET,DONE; } @Override public void onReceive(Object msg) throws Exception { if(msg ==Msg.GREET) { S

2017-04-06 21:33:50 2438

原创 《Java高并发程序设计》学习 --6.7. 原子类的增强

无锁的原子类操作使用系统的CAS指令,有着远远超越锁的性能。在Java 8中引入了LongAddr类,这个类也在java.util.concurrent.atomic包下,因此,它也是使用了CAS指令。1)更快的原子类:LongAddrAtomicInteger的基本实现机制,它们都是在一个死循环内,不断尝试修改目标值,知道修改成功。如果竞争不激烈,那么修改成功的概率就很高,否则,修改失败

2017-04-04 19:49:58 450

ikanalyzer-solr6.zip

solr可自己配置分词器,压缩包内为solr6使用的ik分词jar包及相关文件

2018-02-08

hadoop2.6.4 winutils

hadoop2.6.4 winutils

2016-11-06

数据挖掘:概念与技术(中文第三版)

《数据挖掘:概念与技术》是数据挖掘和知识发现领域内的所有教师、研究人员、开发人员和用户都必读的参考书,是一本适用于数据分析、数据挖掘和知识发现课程的优秀教材。

2016-04-08

数据结构C++语言描述

数据结构基于C++语言,熟悉C++语言后非常基础有价值的学习资料

2014-01-28

C++程序员面试宝典

各大IT公司曾经的面试题和一些关于C++经常面试的基础知识

2014-01-23

Windows窗体程序设计

关于c++的Windows窗体程序设计编程

2014-01-22

java计算器

用java做的计算器,实现了加、减、乘、除、开方、取反运算,并可进行一串计算式的计算。可供初学者学习~

2013-12-31

哈夫曼编码

该程序可以构造哈夫曼树,进行哈夫曼编码、译码。

2013-12-28

《Java程序设计实用教程(第3版)》例题

包含《Java程序设计实用教程(第三版)》的所有实例源码,非常适合初学者学习,分享给大家

2013-12-27

个人财务管理系统

用来练习三层架构的小例子,包含源码,数据库和工程演示

2013-12-27

成绩管理系统

一个简单的成绩管理系统,关于C#连接数据库的应用

2013-12-25

简单的计算器实现

一个简单的windows应用,包含源码和setup文件

2013-12-05

随机数生成器源码

包含随机数生成器的源码和打包好的软件,可以生成设定区间的任意个随机数

2013-11-14

随机数生成器

一个随机数生成器,可以生成任意个不同的随机数

2013-11-09

jdk api1.7.chm

学习java必备的api文档,为大家学习java提供方便

2013-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除