随笔分类 - 并发与分布式
摘要:实现一个拥有如下方法的线程安全有限阻塞队列: BoundedBlockingQueue(int capacity) 构造方法初始化队列,其中capacity代表队列长度上限。void enqueue(int element) 在队首增加一个element. 如果队列满,调用线程被阻塞直到队列非满。i
阅读全文
摘要:给你一个初始地址 startUrl 和一个 HTML 解析器接口 HtmlParser,请你实现一个 多线程的网页爬虫,用于获取与 startUrl 有 相同主机名 的所有链接。 以 任意 顺序返回爬虫获取的路径。 爬虫应该遵循: 从 startUrl 开始调用 HtmlParser.getUrls
阅读全文
摘要:1、定制ThreadPoolExecutor类 2、实现一个基于优先级的Executor类 3、实现ThreadFactory接口生成自定义的线程 4、在一个Executor对象中使用自定义的ThreadFactory 5、在计划好的线程池中定制运行任务 6、实现ThreadFactory接口生成自
阅读全文
摘要:http://my.oschina.net/xianggao/blog/393990 并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,
阅读全文
摘要:http://tanyankai.iteye.com/blog/551997 Quartz是一个开源的作业调度框架,完全由java写的,你能通过它创建简单或者复杂的任务。他能提供巨大的灵活性,但又不牺牲简单性。 Quartz的核心概念 :调度器、触发器、作业 调度器(Scheduler) Sched
阅读全文
摘要:http://blog.csdn.net/pengpegv5yaya/article/details/37595889 Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为
阅读全文
摘要:在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而CyclicBarrier在调用reset之后还可以继续使用。那如果只是这么简单的话,我觉得CyclicBarrier简单命名为ResetableCountDownL
阅读全文
摘要:1、原子操作Atomic 线程安全的类:当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替运行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就是线程安全的。 无状态对象永远是线程安全的。 原子操作:多个线程执行一个操作时,其中任何一个线
阅读全文
摘要:http://cailin.iteye.com/blog/2014486 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式
阅读全文
摘要:http://blog.csdn.net/cutesource/article/details/5822459 ZooKeeper的实现机理 ZooKeeper的实现机理是我看过的开源框架中最复杂的,它的解决是分布式环境中的一致性问题,这个场景也决定了其实现的复杂性。看了两三天的源码还是有些摸不着头
阅读全文
摘要:http://blog.csdn.net/java2000_wl/article/details/8694270 获取锁实现思路: 1. 首先创建一个作为锁目录(znode),通常用它来描述锁定的实体,称为:/lock_node 2. 希望获得锁的客户端在锁目录下创建znode,作为锁/lock_n
阅读全文
摘要:一、第12章 Java 内存模型 1、Java内存模型 内存间的交互操作:lock、unlock、read、load、use、assign、store、write volatile 变量:保证变量对所有线程可见;禁止指令重排序优化。 long、double 特殊规则:允许将没有volatile修饰的
阅读全文
摘要:http://thoughtfly.iteye.com/blog/1426996 glassfish已经内部实现集群步骤 启动某个域后,打开后台管理 1.创建一个节点 2.创建一个集群并指向特定节点 3.在集群下创建实例,实例分两种,本机的和远程的。远程的要使用SSH安全套接字。确认后会给出新的监听
阅读全文
摘要:http://blog.csdn.net/lifetragedy/article/details/7712691 一、为何要集群 单台App Server再强劲,也有其瓶劲,先来看一下下面这个真实的场景。 当时这个工程是这样的,tomcat这一段被称为web zone,里面用spring+ws,还装
阅读全文
摘要:http://blog.csdn.net/lifetragedy/article/details/7708724 一、总结前一天的学习 从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü 吞吐量 ü Responsetime ü Cpuload ü MemoryUsag
阅读全文
摘要:一、总结前一天的学习 在前两天的学习中我们知道、了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构。这个架构是一个非常基础的J2ee工程上线布署时的一种架构。在前两天的教程中,还讲述了Http服务器、App Server的最基本安全配置(包括单向https的实
阅读全文
摘要:一、先从J2EE工程的通用架构说起 这是一个通用的Web即B/S工程的架构,它由: ü Web Server ü App Server ü DB Server 三大部分组成,其中: ² Web Server 置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开
阅读全文
摘要:1、Session的实现 在Session开始时候,分配一个唯一的Session标识sessionId,通过Cookie把 sessionId 告诉浏览器,以后每次请求的时候,浏览器都会带上 sessionId 告诉web服务器,这个请求属于哪个Session。 在web 服务器上,每个Sessio
阅读全文
摘要:在什么情况下使用线程池? (1).单个任务处理的时间比较短 (2).将需处理的任务的数量大 使用线程池的好处: (1)、减少在创建和销毁线程上所花的时间以及系统资源的开销 (2)、如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。 1、FixedThreadPool 每
阅读全文
浙公网安备 33010602011771号