摘要:
package 反射与注解; import 反射与注解.POJO.User; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarget 阅读全文
摘要:
1 package 反射与注解.POJO; 2 3 public class 获取类的几种方式 { 4 public static void main(String[] args) throws ClassNotFoundException { 5 User user = new StudentUs 阅读全文
摘要:
package 反射与注解; import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; import java.lang.annotation.*; public class 元注解 { } //Target 是表示注解是在哪些 阅读全文
摘要:
package 多线程练习; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class 线程池 { public static void main(String[] 阅读全文
摘要:
在生产者跟消费模式中常用两种方法来处理并发问题,管程法跟信用灯法 管程法:常用一个缓冲区来处理通知唤醒跟等待 信号灯法:常用一个标识位来处理唤醒跟等待操作 管程法: 1 package 多线程练习.锁学习.生产者消费模式; 2 3 public class 管程法 { 4 public static 阅读全文
摘要:
package 多线程练习.锁学习; import java.io.PrintStream; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /* ReentrantLo 阅读全文
摘要:
package 多线程练习; import java.util.concurrent.CopyOnWriteArrayList; /* CopyOnWriteArrayList 是JUC当中的安全容器其中用了lock锁 可重入锁 */ public class CopyOnWriteArrayLis 阅读全文
摘要:
1 package 多线程练习.锁学习; 2 3 /* 4 两个线程互相抱对方想要的锁 都在等待对方释放锁 所以卡死了 5 */ 6 public class 自定义死锁 { 7 public static void main(String[] args) { 8 Runnable lileilei 阅读全文
摘要:
synchronized方法控制对象的访问,每个对象对应一把锁,每个synchronized方法都必须获得改方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行,就独占这把锁,知道方法结束才释放锁,后面被阻塞的线程才能获得这个锁被执行 synchronized关键字可以用在方法上标识锁住this对象 阅读全文
摘要:
1 package 多线程练习.不安全线程; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /* 7 没有实际创建那么多线程 8 */ 9 public class UnSafeList { 10 public static 阅读全文