- 博客(12)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Java并发编程:Callable&Future
Java并发编程:Callable&Future在之前的线程中,执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。 用一个简单的例子说明用法:import java.u...
2015-05-24 15:31:56 146
原创 Java并发编程:线程池
Java并发编程:线程池什么是线程池,当一个线执行完一个任务后就死亡了,如果程序并发的线程数量非常多,频繁的创建销毁线程会降低执行的效率。这样,可以创建一些线程,它们的集合称为线程池,当服务器接受到一个客户请求后,就从线程池中取出一个空闲的线程为之服务,服务完后不关闭该线程,而是将该线程还回到线程池中。 在线程池的编程模式下,任务是提交给整个线程池,而不是直接交给某个线程,线程...
2015-05-24 15:31:53 120
原创 Java并发编程:阻塞队列
Java并发编程:阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 Java...
2015-05-24 15:31:40 134
原创 Java并发编程:同步工具类
Java并发编程:同步工具类1.Semaphore类 一个计数信号量,通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。功能和锁有点类似,它一般用于控制对某组资源的访问权限。 acquire()用来获取一个许可,若无许可能够获得,则会一直等待,直到获得许可。 release()用来释放许可。注意,在释放许可之前,必须先获获得许可。im...
2015-05-24 15:31:32 132
转载 Java并发编程:并发容器之CopyOnWriteArrayList(转载)
原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOn
2015-05-23 14:34:14 506
原创 Java并发编程:Lock
Java并发编程:Lock 一.Lock 实现提供了比使用 synchronized 方法和语句更灵活、更具可伸缩性的锁定机制,可以支持多个相关的 Condition 对象。 Lock&synchronized用途比较基本语法上,ReentrantLock与synchronized很相似,它们都具备一样的线程重入特性,只是代码写法上有点区别而已,一个表现为API层...
2015-05-23 13:43:22 132
原创 Java并发编程:线程安全
Java并发编程:线程安全 当多个线程需要同时访问同一个资源(成为临界资源)时,可能会对数据造成破坏。 例如:money += 1000; 当第一个线程取出money值,然后+1000完成这两步之后,第二个进程进入读取了count的值,又+1000 再赋值给count。 这时 第一个线程再进行第三步,把它的值赋给count,这就出现了混乱,没有达到预期的效果(两个线程只存进去了100...
2015-05-23 13:31:04 113
原创 Java并发编程:线程的生命周期
一.线程的生命周期: 1. New:新生 2. Runnable:可运行。 可能正在运行也可能没运行 3. Blocked:被阻塞并等待某个监视器锁的线程处于这种状态。 4. Waiting:无限期地等待另一个线程来执行某一特定操作的线程处于这种状态 5. Timed waiting:计时等待 6. Terminated...
2015-05-23 13:25:00 148
原创 Java并发编程:如何创建线程
一.如何创建线程1.实现java.lang.Runnable 接口public interface Runnable{ public abstract void run();} 2.继承java.lang.Thread 类 源码:public class Thread extends Object implements Runnable{ ...
2015-05-23 13:15:59 121
原创 Java并发编程:多线程介绍
进程和线程:进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间。线程是轻量级的进程,每个CPU核心在同一时刻只能执行一个线程,线程是操作系统可识别的最小执行和调度单位在Java并发编程中 总结了以下知识点: 如何创建线程 线程的生命周期 线程安全:synchronized Lock Calla...
2015-05-23 13:09:41 142
原创 Java笔记 _ 集合
原文章地址:http://www.blogjava.net/changcheng/archive/2009/12/06/304940.html 一.为什么需要集合 当需要存储一组类型相同的元素时,我们需要一种容器来存储,通常用数组来保存。数组的缺点: 1.数组一旦定义,长度不能改变 (可以新建一个更大的数组用arrayCopy()方法拷贝,但是效率太低) ...
2015-05-13 21:09:36 167
原创 Java笔记 _ 泛型
泛型的本质:参数类型的应用。将所操作的数据类型定义为一个参数,并在应用的时候指定类型。1.为什么使用泛型 在JDK1.5之前,泛型程序设计是通过继承来实现的,例如: List list = new ArrayList(); //当加入或取出元素时,都被当成Object类型来看待list.add(new Integer(10));list.add("10"); 那...
2015-05-09 23:38:54 109
Myeclipse中启动Tomcat失败。
2015-09-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人