数据结构
文章平均质量分 71
samyang1
这个作者很懒,什么都没留下…
展开
-
并发容器 - ConcurrentHashMap / 计算机程序的思维逻辑
本节介绍一个常用的并发容器 - ConcurrentHashMap,它是HashMap的并发版本,与HashMap相比,它有如下特点:并发安全直接支持一些原子复合操作支持高并发、读操作完全并行、写操作支持一定程度的并行与同步容器Collections.synchronizedMap相比,迭代不用加锁,不会抛出ConcurrentModificationExcep转载 2017-11-17 09:06:33 · 216 阅读 · 0 评论 -
HashMap之原理及死锁
一、HashMap原理 1.HashMap的本质就是数组和链表。table是一个entry数组,每一个数组元素保存一个Entry节点,而Entry节点内部又连接着同样key的下一个Entry节点,就构成了链表。. 详情见 HashMap源码分析 2.HashMap死锁原因: HashMap会造成死锁,因为HashMap是线程非安全的,多并发的情况容易造成死锁,若要高...转载 2018-05-30 22:23:26 · 482 阅读 · 0 评论 -
java安全管理器SecurityManager入门
一、文章的目的 这是一篇对Java安全管理器入门的文章,目的是简单了解什么是SecurityManager,对管理器进行简单配置,解决简单问题。 比如在阅读源码的时候,发现这样的代码,想了解是做什么的:SecurityManager security = System.getSecurityManager();if (security != null) { security.chec...转载 2018-05-26 20:12:48 · 175 阅读 · 0 评论 -
session原理
一、session的本质http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你。那么,在一些场合,确实需要服务器记住当前用户怎么办?比如用户登录邮箱后,接下来要收邮件、写邮件,总不能每次操作都让用户输入用户名和密码吧,为了解决这个问题,session的方案就被提了出来,事实上它并不是什么新技术,而且也不能脱离http协议以及任何现有的web技术。...转载 2018-05-14 17:48:17 · 358 阅读 · 0 评论 -
并发编程 – Concurrent 用户指南( 下 )
16. 执行器服务 ExecutorServicejava.util.concurrent.ExecutorService 接口表示一个异步执行机制,使我们能够在后台执行任务。因此一个 ExecutorService 很类似于一个线程池。实际上,存在于 java.util.concurrent 包里的 ExecutorService 实现就是一个线程池实现。ExecutorService 例子以下...转载 2018-05-17 23:47:01 · 132 阅读 · 0 评论 -
并发编程 – Concurrent 用户指南( 上 )
1. java.util.concurrent – Java 并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识 java.util.concurrent 包里的这些类,然后你可以尝试着如何在项目中...转载 2018-05-17 23:45:18 · 197 阅读 · 0 评论 -
Java并发(一)CountDownLatch源码分析
CountDownLatch(闭锁)是一个很有用的工具类,利用它我们可以拦截一个或多个线程使其在某个条件成熟后再执行。它的内部提供了一个计数器,在构造闭锁时必须指定计数器的初始值,且计数器的初始值必须大于0。另外它还提供了一个countDown方法来操作计数器的值,每调用一次countDown方法计数器都会减1,直到计数器的值减为0时就代表条件已成熟,所有因调用await方法而阻塞的线程都会被唤醒...原创 2018-05-11 09:53:21 · 286 阅读 · 0 评论 -
解决国内gem不能用的问题
若在安装sass或compass的时候,用到gem命令,但是运行出行如下错误!C:\Users\len>gem install sassERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno::ETIMEDOUT: A connection attempt failed because the c...原创 2018-02-24 18:26:49 · 283 阅读 · 0 评论 -
package-info.java文件分析
一、特点:1.不能随便被创建:在Eclipse中, package-info文件不能随便被创建,会报“Type name is notvalid”错误,类名无效(Java变量定义规范是字母、数字、下划线、$符号)。用记事本创建拷贝进去或者是从别的地方复制一个进去。2.服务的对象很特殊:描述和记录本包信息3.类不能带有public、private访问权限:package-info.java中只能声明...转载 2018-02-12 14:40:02 · 471 阅读 · 0 评论 -
ConcurrentHashMap
一、背景1、线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。2、效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTab原创 2017-12-29 17:02:33 · 151 阅读 · 0 评论 -
B树和B+树
B树是为实现高效的磁盘存取而设计的多叉平衡搜索树。这个概念在文件系统,数据库系统中非常重要。当然,有关于B树的产生,发展,结构等等方面的介绍已经非常详细,所以本文只是介绍有关于B树和B+树最核心的知识点,也算是我本人的学习笔记。至于详细的资料,因为毕竟有着太多,所以不再赘述。可以向大家推荐一篇博客:从B树、B+树、B*树谈到R 树,这篇文章中,作者对于B树系列数据结构的讲解非常详细,我的这篇博转载 2017-12-18 15:44:51 · 156 阅读 · 0 评论 -
Java性能监控之Instrumentation
1.1. Instrumentation 简介利用 Java 代码,即 java.lang.instrument 做动态 Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent...原创 2018-07-05 12:00:22 · 551 阅读 · 0 评论