- 博客(19)
- 收藏
- 关注
原创 MR Mapper/Reducer、Partitioner初解
Mapper/Reducer:void map(K1 key, V1 value, OutputCollector output, Reporter reporter) throws IOException;
2014-07-18 20:57:33 787
原创 MR OutputFormat 初解
包含方法: RecordWriter getRecordWriter(FileSystem ignored, JobConf job,String name, Progressable progress) throws IOException;
2014-07-17 21:21:33 754
原创 linux mmap初解
#include void *mmap(void *start, size_t length, int prot, int flags,int fd, off_t offset);int munmap(void *start, size_t length);
2014-07-14 17:00:19 559
转载 Linux epoll
定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核
2014-07-14 14:46:15 501
原创 wait notify notifyAll
Java里面可以将wait和notify放在synchronized里面,是因为Java是这样处理的:在synchronized代码被执行期间,线程调用对象的wait()方法,会释放对象锁标志,然后进入等待状态,然后由其它线程调用notify()或者notifyAll()方法通知正在等待的线程。
2014-07-03 17:17:10 447
原创 DataNode写数据
client发送块给pipeline上的第一个datanode,此datanode将块数据写到本地并传给下一个。然后将后续块返回来的响应信息加上自身的操作结果信息一起返回到前面。在pipeline上,如果某个DataNode有后续节点,那么,它必须等到后续节点的成功应答,才可以发送应答到它前面的节点。 写操作DataXceiver.writeBlock:
2014-07-03 16:25:17 1233
原创 ThreadGroup和ExecutorService
ExecutorService: 1 package BackStage; 2 3 import java.util.concurrent.Executors; 4 import java.util.concurrent.ExecutorService; 5 6 public class JavaThreadPool { 7 public static
2014-07-02 14:37:01 959
原创 AtomicInteger简介
这个类真的非常实用,更重要的是 它确实非常简单:附上自己的代码,可以自己试试:AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。 代码:package test;import jav
2014-07-02 14:21:12 467
原创 NIO就绪处理之OP_WRITE
写就绪相对有一点特殊,一般来说,你不应该注册写事件。写操作的就绪条件为底层缓冲区有空闲空间,而写缓冲区绝大部分时间都是有空闲空间的,所以当你注册写事件后,写操作一直是就绪的,选择处理线程全占用整个CPU资源。所以,只有当你确实有数据要写时再注册写操作,并在写完以后马上取消注册。当有数据在写时,将数据写到缓冲区中,并注册写事件。
2014-07-02 10:23:58 638
原创 Java 流
一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型:1)
2014-07-01 19:44:49 435
原创 ThreadLocal
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操
2014-07-01 16:22:35 542
原创 Java NIO
一、缓冲区 java.nio.buffer创建缓冲区:public static ByteBuffer allocate(int capacity);public static ByteBuffer wrap(byte[] array);public static ByteBuffer wrap(byte[] array, int offset, int length);
2014-07-01 14:18:10 527
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人