摘要:
Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condi 阅读全文
摘要:
synchronized的缺陷: 被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,获取线程被阻塞时,没有释放锁会导致等待线程无期限的等待下去。另外,多个线程都只是进行读操作时,线程之间不会发生冲突,通过Lock就可以办到。 阅读全文
摘要:
创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable 阅读全文
摘要:
Executors工具类用于创建Java线程池和定时器。 newFixedThreadPool:创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加 阅读全文
摘要:
java.util.concurrent.atomic包中提供了对基本数据类型,对数组中的基本数据类型和类中的基本数据类型的操作。详情见API。 下面实例简单介绍AtomicInteger类的使用: 1 public class AtomicTest { 2 public static void m 阅读全文
摘要:
转:http://www.cnblogs.com/dolphin0520/p/3920373.html Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果 阅读全文
摘要:
在多线程访问共享对象和数据时候大致可以分为两大类。 1:如果每个线程执行的代码相同,可以使用同一个runnable对象,这个runnable对象中有那个共享对象。如:买票系统。 1 public class MulteThreadlShareData { 2 public static void m 阅读全文
摘要:
Java日期时间使用总结一、Java中的日期概述日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题。在Java中,操作日期主要涉及到一下几个类:1、java.util.Date 类 Date ... 阅读全文
摘要:
ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用... 阅读全文
摘要:
传统的线程互斥和同步通信是通过synchronized关键字和wait()、notify()方法来实现的。首先介绍下synchronized关键字。synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。1. synchronized 方法:... 阅读全文