摘要:
异常释放锁的情况 package demo1;/** * * Created by liudan on 2017/6/5. */public class MyThread5_synchronized2 { private int i=0; public synchronized void opera 阅读全文
摘要:
package demo1;/** * synchronized锁重入 * Created by liudan on 2017/6/5. */public class MyThread5_synchronized1 { /** * 父子类同步必须 都 使用synchronized关键字 */ sta 阅读全文
摘要:
对于对象的同步、异步的方法,设计程序的时候一定要考虑问题的整体,出现数据不一致就一个经典的错误。 package demo1;/** * * Created by liudan on 2017/6/3. */public class MyThread4 { private String user = 阅读全文
摘要:
多个线程多个锁 1.多个线程,每个线程都可以去拿到自己制定的锁(object) ,分别获取锁后,执行 synchronized 方法。 2. synchronized 拿到的锁都是对象锁,而不是把一段代码、方法的锁,多个线程就次有该方法的对象锁。2个对象,线程获取就是2个对象不同的锁(互不影响)。 阅读全文
摘要:
同步synchronized 1.同步的概念就是共享资源,如果不是为了共享资源没必要进行同步;同步的目的就是为了线程安全,线程安全只需要满足特性:原子性(同步)、可见性 package demo1;/** * Created by liudan on 2017/5/30. */public clas 阅读全文
摘要:
实现多线程 1.基础Thread类2.实现Runnable接口 描述: 1.当多个线程访问 MyThread 这个类方法的时候,一排队的方式去进行访问处理(cpu的分配) 2.一个线程要执行 synchronized 方法修饰的代码:尝试去获取锁,如果拿到锁,则立即去执行。 如果拿不到锁,则会一直不 阅读全文
摘要:
package demo1;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class Dem 阅读全文
摘要:
package dmeo9;public class MyAccount { private String oid; private int cash; public MyAccount(){ } public MyAccount(String oid, int cash) { this.oid = 阅读全文
摘要:
Condition package dmeo9;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Reentrant 阅读全文
摘要:
package dmeo9;import javax.security.auth.login.FailedLoginException;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Reentrant 阅读全文
摘要:
自定义线程池 1.若Executors工厂类无法满足需求,可以自己使用工厂类创建线程池,底层都是使用了ThreadPoolExecutor这个类可以自定义。 public ThreadPoolExecutor(int corePoolSize(当前核心线程数), int maximunPoolSiz 阅读全文
摘要:
Executor框架 1.为了更好的控制多线程,jdk并发包的核心,其中一部分比较重要的类:Excutor,帮助开发人员有效控制多线程、作为线程工厂的角色。 Executors创建线程static方法 1.newFixedThreadPool(),该方法返回一个固定的线程池,线程池的的固定数量是始终 阅读全文