摘要:
synchronized在修饰代码块的时候需要一个reference对象作为锁的对象. 在修饰实例方法的时候默认是当前实例对象作为锁的对象. 在修饰类方法(静态方法)时候默认是当前类的Class对象作为锁的对象. synchronized使用总结如下: 1 方法锁 通过在方法声明中加入 synchr 阅读全文
摘要:
线程池究竟设置多大要看你的线程池执行的什么任务了,CPU密集型、IO密集型、混合型,任务类型不同,设置的方式也不一样 任务一般分为:CPU密集型、IO密集型、混合型,对于不同类型的任务需要分配不同大小的线程池 1、CPU密集型 尽量使用较小的线程池,一般Cpu核心数+1 因为CPU密集型任务CPU的 阅读全文
摘要:
运行结果:before a:1b:2 after a:2b:1 发掘的要点: 1、包装类引用传递,普通变量是值传递,引用传递传递的是内存地址,不能修改值 运行结果:before a:1b:2 after a:1b:2 2、需要通过反射修改private final变量 3、Integer包装类中的- 阅读全文
摘要:
方式一:使用Thread里面的join方法 方式二:jdk1.5引入的Executor执行器,使用newSingleThreadExecutor,创建只有一个线程的线程池,所有任务放在一个没有上限的LinkedBlockingQueue队列里(FIFO(先进先出)),等待唯一的单线程来执行任务,保证 阅读全文