自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZERO

  写程序归根到底就是做两件事---算法实现和错误处理

  • 博客(9)
  • 收藏
  • 关注

转载 自旋锁与互斥锁

转载自:http://ifeve.com/practice-of-using-spinlock-instead-of-mutex/       自旋锁和互斥锁是多线程程序中的重要概念。它们被用来锁住一些共享资源,以防止并发访问这些共享数据时可能导致的数据不一致问题。但是它们的不同之处在哪里?       从理论上说,如果一个线程尝试加锁一个互斥锁的时候,因为互斥锁已经被锁住了,这个未获

2016-12-23 17:37:32 516

原创 GC日志中的stop-the-world

通常使用下面的JVM选项在GC日志中打印”stop-the-world”(STW)暂停时间。-XX:+PrintGCApplicationStoppedTime       但是在GC日志中看,会发现有许多这样的暂停时间,时间很短,肯定不是垃圾回收引起的。Total time for which application threads were stopped: 0.0013102 sec

2016-12-23 17:29:35 5055

转载 双重检查锁定与延迟初始化

转载自:http://www.infoq.com/cn/articles/double-checked-locking-with-delay-initialization 在java程序中可能会采用延迟初始化,但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:public class UnsafeLazyI...

2016-12-22 19:21:15 427

转载 Java 8新特性—字符串去重

转载自:http://ifeve.com/string-deduplication-new-feature/        Oracle发布的JDK 8u20包含很多新特性,比如Java编译器更新、支持在运行时通过API来修改MinHeapFreeRatio和MaxHeapFreeRatio参数、新的GC调优指南文档。在众多新特性中,最令人期待的还属字符串去重(String Dedupli

2016-12-20 19:03:10 1647

转载 zookeeper介绍(二)

转载自:http://blog.csdn.net/lskyne/article/details/390771476.znode类型        zookeeper中znode的节点创建时候是可以指定类型的,主要有下面几种类型。       PERSISTENT:持久化znode节点,一旦创建这个znode点存储的数据不会主动消失,除非是客户端主动的delete。     

2016-12-13 19:33:22 485

转载 Apache Curator简单使用(三)

转载自:http://www.chengxuyuans.com/Java+/72042.html分布式锁Lock       Curator中的支持的锁服务有多种类型,详见http://ifeve.com/zookeeper-lock/。       共享锁: 全局同步分布式锁, 同一时间两台机器只有一台能获得同一把锁。       共享读写锁: 用于分布式的读写互斥处理,

2016-12-13 19:27:06 2406

转载 Apache Curator简单使用(二)

转载自:http://www.chengxuyuans.com/Java+/72042.html              http://ifeve.com/zookeeper-sharedcount/分布式队列Queue       分布式队列的基本特性,就是"生产者"或"消费者"跨越多个进程,且在此种环境中需要确保队列的push/poll的有序性。zookeeper本身

2016-12-13 19:21:22 2529 1

原创 SparkStreaming的WordCount示例及源码分析(三)

在JobScheduler的start中,当receiverTracker启动完毕之后,将启动JobGenerator。JobGenerator负责对DstreamGraph的初始化,DStream与RDD的转换,生成Job,提交执行等工作./** Start generation of jobs */def start(): Unit = synchronized { if (eventLo

2016-12-01 19:45:36 425

原创 SparkStreaming的WordCount示例及源码分析(二)

ReceiverTracker自身运行在driver端,是一个管理分布在各个executor上的Receiver的总指挥者。   ReceiverTracker的作用是处理数据接收,数据缓存,Block生成等工作。JobScheduler拥有ReceiverTracker实例,在JobScheduler的start()方法中会启动ReceiverTracker,ReceiverTracker.st

2016-12-01 19:31:12 494

空空如也

空空如也

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

TA关注的人

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