随笔分类 -  java

零拷贝
摘要:从文件读取数据并通过网络将数据传递给其他程序: read()调用导致上下文从用户态切换到内核态。内核通过sys_read()(或等价的方法)从文件读取数据。DMA引擎执行第一次拷贝:从文件读取数据并存储到内核空间的缓冲区。 请求的数据从内核的读缓冲区拷贝到用户缓冲区,然后read()方法返回。rea 阅读全文
posted @ 2019-07-18 11:59 loveflying 阅读(137) 评论(0) 推荐(0)
ReentrantLock源码的一点总结
摘要:ReentrantLock 是可重入锁,可重入锁的意思就是同一个线程可以重复获得该锁。 如何做到可重复获得该锁?计数器实现。 第一次加锁,cas比较是不是0,是0设置为1,并设置当前拥有锁的线程; 第二次及后续枷锁,调用acquire方法。 在计数器不是0的情况下,就会比较当前线程是不是同一个线程, 阅读全文
posted @ 2019-07-12 21:03 loveflying 阅读(126) 评论(0) 推荐(0)
java并发编程
摘要:重入的一种实现方法是,为每个锁关联一个计数值和一个所有者线程。当计数值为0时,这个锁就被认为是没有被任何线程持有。当线程请求一个未被持有的锁时,JVM将记下锁的持有者,并且将获取计数值置为1。 synchronized是可重入的。 当读取一个非volatile类型的long或者double变量时,如 阅读全文
posted @ 2017-10-24 16:40 loveflying 阅读(115) 评论(0) 推荐(0)
java 泛型?和T的区别
摘要:泛型三种: [1]ArrayList<T> al=new ArrayList<T>();指定集合元素只能是T类型 [2]ArrayList<?> al=new ArrayList<?>();集合元素可以是任意类型,这种没有意义,一般是方法中,只是为了说明用法 [3]ArrayList<? exten 阅读全文
posted @ 2017-10-11 14:56 loveflying 阅读(308) 评论(0) 推荐(0)
JAVA方法参数
摘要:1,方法的参数是拷贝值 2,一个方法不能修改基本数据类型的参数(如int,double) 3,可以修改对象引用的数据,引用拷贝指向同一个对象 阅读全文
posted @ 2017-08-23 10:22 loveflying 阅读(205) 评论(0) 推荐(0)
按行读取String类型
摘要:BufferedReader br = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(content.getBytes()), Charset.forName("utf8"))); String line; line = br.readLine(); 阅读全文
posted @ 2017-05-23 15:07 loveflying 阅读(708) 评论(0) 推荐(0)
http文件传输
摘要:接受端: 使用 DiskFileItemFactory factory = new DiskFileItemFactory(); 阅读全文
posted @ 2017-05-23 14:59 loveflying 阅读(244) 评论(0) 推荐(0)