摘要:
代码示例: 1 import java.io.*; 2 3 public class CopyTest { 4 public static void main(String[] args) { 5 6 File srcDir = new File("./A"); 7 File tarDir = ne 阅读全文
摘要:
1 package cn.employee_io; 2 3 import java.io.Serializable; 4 5 public class Employee implements Serializable{ 6 /** 7 * 8 */ 9 private static final lo 阅读全文
摘要:
一. 索引 1. 异常机制 <1> 异常的基本概念: https://www.cnblogs.com/JasperZhao/p/14857862.html <2> 异常的避免与捕获: https://www.cnblogs.com/JasperZhao/p/14858766.html <3> fin 阅读全文
摘要:
1. 图解 2. 代码示例 <1> 仓库类 1 public class StoreHouse { 2 private int cnt = 0; // 用于记录产品的数量 3 4 public synchronized void produceProduct() { 5 notify(); 6 if 阅读全文
摘要:
线程池(熟悉) 1. Callable接口 <1> 从Java5开始,新增加创建线程的第三种方式:实现java.util.concurrent.Callable接口 <2> 常用方法 V call() 计算结果并返回 <3> 代码示例 (ThreadCallableTest.java) 5 publ 阅读全文
摘要:
1. 常用方法 void wait() 用于使得线程进入等待状态,直到其他线程调用notify()或notifyAll()方法 void wait(long timeout) 用于进入等待状态,直到其他线程调用方法,或参数指定的毫秒数已经过去为止 void notify() 用于唤醒等待的单个线程 阅读全文
摘要:
1. 基本概念 <1> 从Java5中,开始提供了强大的线程同步机制 > 使用显式定义的同步锁对象来实现 <2> java.util.concurrent.locks.Lock接口: 控制多个线程对共享资源进行访问的工具 <3> 该接口的主要实现类是 ReentrantLock类,该类拥有与sync 阅读全文
摘要:
线程一执行的代码: public void run() { synchronized(a) { // 持有对象锁a,等待对象锁b synchronized(b) { 编写锁定的代码 } } } 线程二执行的代码: public void run() { synchronized(b) { // 持有 阅读全文
摘要:
<1> StringBuffer类是线程安全的类,但StringBuilder类不是线程安全的类 <2> Vector类 和 Hashtable类是线程安全的类,但ArrayList类 和 HashMap类 不是线程安全的类 <3> Collections.synchronizedList() 和 阅读全文
摘要:
1.静态方法的锁定 <1> 当我们对一个静态方法加锁,如: public synchronized static void xxx() {...} 那么,该方法锁的对象是类对象。 每个类都有唯一的一个类对象。 获取类对象的方式:类名.class <2> 静态方法与非静态方法,同时使用了synchro 阅读全文