上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 37 下一页

2017年3月24日

jetty 6.1 笔记

摘要: download: http://dist.codehaus.org/jetty/jetty-6.1.22/jetty 6.2 代码启动必要jar包lib --->>lib--->>jsp2.0--->> 最终形成目录 -->>mark jetty 6.1 jsp2.1 目录结构注:由于使用jsp2.1 代码启动时不能对el很好的兼容 不支持三元运算,导致一些表达式抛出elexception 选... 阅读全文

posted @ 2017-03-24 08:52 signheart 阅读(728) 评论(0) 推荐(0) 编辑

jetty 代码启动

摘要: jetty代码启动jetty 版本为:jetty-distribution-8.1.16.v20140903public class ServerStart extends Server { @Test public void serverStrart() throws Exception { long begin = System.currentTimeMillis(); C... 阅读全文

posted @ 2017-03-24 08:51 signheart 阅读(972) 评论(0) 推荐(0) 编辑

2017年3月23日

HashMap与ConcurrentHashMap的区别

摘要: 从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。从ConcurrentHashMap代... 阅读全文

posted @ 2017-03-23 18:08 signheart 阅读(21997) 评论(0) 推荐(2) 编辑

java 多线程 27 :多线程组件之CountDownLatch

摘要: 前言在多线程环境下,JDK给开发者提供了许多的组件供用户使用(主要在java.util.concurrent下),使得用户不需要再去关心在具体场景下要如何写出同时兼顾线程安全性与高效率的代码。之前讲过的线程池、BlockingQueue都是在java.util.concurrent下的组件,Timer虽然不在java.util.concurrent下,但也算是。后两篇文章将以例子的形式简单讲解一些... 阅读全文

posted @ 2017-03-23 18:07 signheart 阅读(896) 评论(0) 推荐(0) 编辑

java 多线程 28 : 多线程组件之 Semaphore 信号量

摘要: Semaphore是非常有用的一个组件,它相当于是一个并发控制器,是用于管理信号量的。构造的时候传入可供管理的信号量的数值,这个数值就是控制并发数量的,就是同时能几个线程访问。我们需要控制并发的代码,执行前先通过acquire方法获取信号,执行后通过release归还信号 。每次acquire返回成功后,Semaphore可用的信号量就会减少一个,如果没有可用的信号,acquire调用就会阻塞,等... 阅读全文

posted @ 2017-03-23 18:07 signheart 阅读(336) 评论(0) 推荐(0) 编辑

java 多线程 29 :多线程组件之 Exchanger

摘要: ExchangerExchanger,从名字上理解就是交换。Exchanger用于在两个线程之间进行数据交换,注意也只能在两个线程之间进行数据交换。线程会阻塞在Exchanger的exchange方法上,直到另外一个线程也到了同一个Exchanger的exchange方法时,二者进行数据交换,然后两个线程继续执行自身相关的代码。Exchanger只有一个exchange方法,用于交换数据。看一下例... 阅读全文

posted @ 2017-03-23 18:07 signheart 阅读(396) 评论(0) 推荐(0) 编辑

java 多线程 30: 多线程组件之 CyclicBarrier

摘要: CyclicBarrier接着讲多线程下的其他组件,第一个要讲的就是CyclicBarrier。CyclicBarrier从字面理解是指循环屏障,它可以协同多个线程,让多个线程在这个屏障前等待,直到所有线程都达到了这个屏障时,再一起继续执行后面的动作。看一下CyclicBarrier的使用实例:public static class CyclicBarrierThread extends Thre... 阅读全文

posted @ 2017-03-23 18:07 signheart 阅读(341) 评论(0) 推荐(0) 编辑

java 多线程 33: 多线程组件之 Callable、Future和FutureTask

摘要: CallableCallable和rRunnable差不多,两者都是为那些其实例可能被另一个线程执行的类而设计的,最主要的差别在于Runnable不会返回线程运算结果,Callable可以(假如线程需要返回运行结果)FutureFuture是一个接口表示异步计算的结果,它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。Future提供了get()、cancel()、isCance... 阅读全文

posted @ 2017-03-23 18:07 signheart 阅读(228) 评论(0) 推荐(0) 编辑

多线程上下文切换优化与注意

摘要: 前言本文来自方腾飞老师《Java并发编程的艺术》第一章。并发编程的目的是为了让程序运行得更快,但是并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题,本文要研究的是上下文切换的问题。 什么是上下文切换即使是单核CPU也支持多线程执行代码,CPU通过给... 阅读全文

posted @ 2017-03-23 18:07 signheart 阅读(5479) 评论(0) 推荐(3) 编辑

java 多线程 22 :生产者/消费者模式 进阶 利用await()/signal()实现

摘要: java多线程15 :wait()和notify() 的生产者/消费者模式在这一章已经实现了 wait/notify 生产消费模型利用await()/signal()实现生产者和消费者模型一样,先定义一个缓冲区:public class ValueObject { public static String value = ""; }换种写法,生产和消费方法放在一个类里面:public c... 阅读全文

posted @ 2017-03-23 18:06 signheart 阅读(2445) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 37 下一页

导航