JDK并发包
摘要:一. java.util.concurrent.locks.ReentrantLock重入锁 1.手动加锁,手动释放锁,对逻辑控制的灵活性要高于synchronized lock.lock(); try{ i++; }finally{ lock.unlock(); } 2.在等待锁的过程中,取消对锁
阅读全文
线程的基本操作
摘要:一. 新建线程 1.继承Thread类,重写run()方法。 当调用start()时,会创建一个新的线程并执行run(); 如直接调用run(),只会在当前线程中串行执行run()中的代码; 2.实现Runnable接口。 用Runnable接口的实例来构造Thread对象; 默认的Thread.r
阅读全文
为什么并行
摘要:一. 为什么需要设计并行程序 1.摩尔定律:集成电路上可容纳的晶体管数目,每隔24个月便会增加一倍。制造工业无法取得本质上的突破造成了摩尔定律的失效。 2.硬件工程师转向多核CPU的研发。简化的硬件设计方案带来了软件设计的复杂性。 3.我们的世界本质上就是并行的。 二. 几个概念 1.同步:方法一旦
阅读全文