自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 spark源码分析之TaskMemoryManager

概述TaskMemoryManager用于管理每个task分配的内存。在off-heap内存模式中,可以用64-bit的地址来表示内存地址。在on-heap内存模式中,通过base object的引用 和该对象中64-bit 的偏移量来表示内存地址。当我们想要存储其它结构内部的数据结构的指针时,这是一个问题,例如记录hashmap或者sorting buffer的指针。即使我们使用12...

2018-07-31 15:41:57 1728

原创 FutureTask源码分析

Future接口概述Future接口代表异步计算的结果,它提供了检查计算是否完成,取消计算执行,等待计算完成并检索计算结果的方法。如果你出于可取消计算执行的目的使用Future,但又不想返回结果,可以使用Future<?>数据类型,并使用null作为底层任务的返回结果。Future接口定义如下:public interface Future<V> {...

2018-07-29 22:22:28 314

原创 spark源码分析之ReadAheadInputStream

概述ReadAheadInputStream实现了从当前buffer读取的data耗尽时,切换到另外一个buffer读取数据,并启动任务从底层输入流异步预读data,放入耗尽的buffer中。它通过2个buffer来完成——active buffer和read ahead buffer。在调用read()方法时会返回active buffer中的数据。而read ahead buffer用于从...

2018-07-28 11:29:25 628

原创 AbstractQueuedSynchronizer源码分析之共享锁实现

doAcquireShared()方法该方法在共享模式以不响应中断的方式阻塞等待获取锁,实现如下:1、将当前线程封装成节点入队;2、在死循环中调用park方法。第一次循环(自旋、acquire loop),或者被唤醒从park方法返回后,会判断前驱节点是否是头节点,以及调用tryAcquire()方法是否返回true,如果这2个条件都为真,由当前节点自己设置为头节点,并将后继节点唤醒...

2018-07-24 18:02:07 526

原创 Condition源码分析

Condition接口概述condition与Lock的实现类结合使用。 如果Lock替换了synchronized方法和语句的使用,则Condition将替换Object监视方法(wait,notify和notifyAll)的使用。condition,也称为condition queue或者condition variables,能让一个线程阻塞在条件变量上,直到其他线程通知该线程条...

2018-07-20 16:08:54 1618 1

原创 jvm源码分析之interrupt()

概述线程的thread.interrupt()方法是中断线程。中断一个线程意味着在线程完成它的任务之前,停止它当前正在执行的操作。如果线程堵塞在object.wait、Thread.join和Thread.sleep,将会清除线程的中断状态,并抛出InterruptedException;如果线程堵塞在java.nio.channels.InterruptibleChannel的IO上...

2018-07-19 11:54:41 1463

原创 pthread_cond_signal

pthread_cond_broadcast, pthread_cond_signal - broadcast or signal a condition语法#include <pthread.h>int pthread_cond_broadcast(pthread_cond_t *cond);int pthread_cond_signal(pthread_cond_t ...

2018-07-17 11:20:11 8702

原创 pthread_cond_wait

pthread_cond_timedwait()和pthread_cond_wait()函数会阻塞在条件变量上。它们应和互斥锁(mutex lock)一起使用。pthread_cond_wait内部操作这些函数以原子方式释放互斥锁,并导致调用线程阻塞条件变量cond。这里的原子性考虑到了被其它线程获取锁并改变条件变量的情况。也就是,只有在这个线程阻塞了条件变量后,其他线程才能获取获取锁,改变条件变...

2018-07-16 15:22:01 912

转载 java NIO之MappedByteBuffer

简书 占小狼前言java io操作中通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于MappedByteBuffer操作大文件的方式,其读写性能极高,本文会介绍其性能如此高的内部实现原理。内存管理在深入MappedByteBuffer之前,先看看计算机内存管理的几个术语:MMC:CPU的内存管理单元。物理内...

2018-07-15 21:07:56 1129

原创 spark源码分析之NioBufferedFileInputStream

NioBufferedFileInputStream是spark实现的一种新的字节流,它既支持内部缓冲区,又支持nio读取文件,使用direct buffer避免java堆与native内存之间的数据拷贝。在Java jdk中没有可供直接使用的具备以上2个功能的字节流。sun.nio.ch.ChannelInputStream虽然支持使用nio读取一个文件,但是不支持缓冲。

2018-07-10 18:21:48 402

转载 Java NIO之DirectByteBuffer

DirectByteBuffer是Java用于实现堆外内存的一个重要类,我们可以通过该类实现堆外内存的创建、使用和销毁。

2018-07-10 18:04:47 2031 1

转载 Netty中的水平触发和边缘触发

在Netty中,NioChannel体系是水平触发,EpollChannel体系是边缘触发。

2018-07-08 23:29:57 3902 2

转载 Linux mmap

mmap基础概念1.mmap内存映射原理mmap是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系;实现这样的映射关系后,进程就可以采用指针的方式读写操作这一块内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必调用read,write等系统调用函数,相反,内核空间堆这段区域的修改也直接反应到...

2018-07-03 17:50:24 5637

翻译 Linux HighMemory(高端内存)

目前。32位的x86架构是最受欢迎的计算机架构。在这种架构中,传统上Linux内核将4GB的虚拟内存地址空间分为3GB用户内存和1GB内核空间。在传统大小的32位系统上,这意味着内核可以将所有物理内存映射到其地址空间,这使得以下内容成为可能:直接从内核中访问任何内存,这使事情变得更加简单和快捷。使用从内核对象到另一个对象的指针。 另一种方法是跟踪物理地址,映射到物理地址,并在访问之前计算结构的虚拟...

2018-07-03 17:07:11 3315 2

原创 Netty搭建http server

概述HttpRequestDecoder即把 ByteBuf 解码到 HttpRequest 和 HttpContent。 HttpResponseEncoder即把 HttpResponse 或 HttpContent 编码到 ByteBuf。 HttpServerCodec即 HttpRequestDecoder 和 HttpResponseEncoder 的结合。例子...

2018-07-03 16:11:34 2591

转载 Linux epoll实现io多路复用原理

开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。int epoll_...

2018-07-02 23:34:53 708

原创 jvm源码分析之FileChannel的read/write()方法

BtyeChannelBtyeChannel接口提供对通道进行字节读、写的抽象方法。实际上什么都不做,只是继承了ReadableBtyeChannel接口和WriteableByteChannel。SeekableByteChannelSeekableByteChannel接口继承了ByteChannel,但它还提供了position()、size()等方法。一个Seekab...

2018-07-02 18:10:20 5851

ios的网络图片下载类库

ios的网络图片下载类库

2016-03-31

viewpager的下横线指示器

viewpager的下横线指示器,使用translateAnimation位移动画实现被选中页卡的下横线的移动

2015-07-30

viewpager实现页面导航之三

新特点是使用translateAnimation位移动画实现被选中的点的移动。而不是用以往的方法实现点的切换。之所以说是点的移动而不是点的切换是因为,运行代码滑动页面时真的可以看到像在Flash中绿点的移动效果。以往的方法只是一个点换成灰色图片,另一个换成绿色图片,没有移动。

2015-07-22

viewpager实现页面导航

viewpager实现页面导航,代码耦合性低。比如不在initiateItem()中设计并返回页卡布局文件对象。姑且可以看看了解

2015-07-21

viewpager与预编译的点布局实现页面导航效果

该源代码简洁的实现了在页面滑动时点的变化,而且包容点的布局是经过重写的布局,单独作为一个文件,不在MainActivity.java中,耦合低

2015-07-20

进销存管理系统之二

这是由明日科技公司开发的进销存管理系统,跟上一例代码有些相似之处

2015-07-17

进销存管理系统

这是个教你怎么连接sqlserver2008的代码,只要查看dao.java即可

2015-07-17

java+Mysql学生数据库管理系统

该源代码里会教你怎么自定义类将在数据库查询到的结果集以表格的形式展示在界面上;怎么自定义图形面板添加背景图片

2015-07-11

MyListView

listview的BaseAdapter用法的android源代码,还用了convert与viewholder的回收机制

2015-07-10

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

TA关注的人

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