程序员
想增肥的程序员
这个作者很懒,什么都没留下…
展开
-
JAVA日常学习之----实现线程安全的单例模式
实现线程安全的单例模式:饿汉模式,即在声明类时创建类,是线程安全的,private static Singleton singleton=new Singleton(); 使用synchronized关键字实现线程安全,可以把关键字synchronized(Singleton.class)加到方法上或者IF判断语句上。 使用双检查锁机制实现线程安全。 public class Sing...原创 2019-08-28 20:22:42 · 94 阅读 · 0 评论 -
JAVA日常学习----线程池
线程池的好处:使用线程池的好处是减少系统在创建线程和销毁线程时所使用的时间与开销,解决资源不足的问题,如果不使用线程池,有可能导致系统创建大量的线程而导致内存消耗或者“过度切换”的问题。线程池创建方法:Executors.newCachedThreadPool():无限线程池。 Executors.newFixedThreadPool(nThreads):创建固定大小的线程池。 E...原创 2019-09-01 10:42:46 · 128 阅读 · 0 评论 -
JAVA日常学习----volatile
并发编程中的三个概念原子性:一个操作和多个操作,要么全部执行完,要不全部不执行。 可见性:多个线程同时访问一个变量时,一个线程修改了变量值,其他线程能够立即看见。 有序性:程序按照代码先后顺序执行。JVM在编译时会发生指令重排序。想要程序正确的执行,必须保证程序的原子性、可见性和有序性。否则程序执行出错。JAVA内存模型规定所有变量存储在主存中(类似与物理内存),每个线程有自己的工...原创 2019-09-03 20:48:00 · 85 阅读 · 0 评论 -
JAVA日常学习--HashMap
1.HashMap底层是一个数组,数组的每一项是一个链表,新建HashMap的时候会创建一个数组transient Entry[] table;static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; ...原创 2019-09-05 20:52:12 · 78 阅读 · 0 评论 -
JAVA日常学习----锁
1.synchronized锁synchronized锁可以加在方法和代码块上。 当一个线程正在访问一个对象的synchronized方法,那么其他线程不能访问该对象的其他synchronized方法。 当一个线程正在访问一个对象的synchronized方法,那么其他线程能访问该对象的非synchronized方法。 如果一个线程A需要访问对象object1的syn...原创 2019-09-07 18:48:42 · 114 阅读 · 0 评论 -
Mysql学习----事务
事务是一组sql语言组成的逻辑单元,其中包含了一个或多个读写操作。1. 事务有四个属性:原子性:事务中的操作,要不全部都执行,要不全部不执行。 一致性:事务执行前后,数据库中的数据都是一致的。意思是数据都符合完整性约束,事务执行前后所有数据都必须符合规定的数据之间相关规则。 隔离性:事务的运行过程对外部不可见。任何一个事务都认为只有自己在执行。 持久性:事务修改的数据保存在数据库...原创 2019-09-11 22:40:50 · 91 阅读 · 0 评论