随笔分类 - 并发编程
摘要:第一.java领域对象传输 1.1基于socket对象进行传输案例: User 解决报错,就是对 User 这个对象实现一个 Serializable 接口,再次运行就可以看到对象能够正常传输了 1.Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时
阅读全文
摘要:第一.CountDownLatch 让一些线程阻塞知道另外一个线程完成一系列操作后才被唤醒CountDownLatch主要有2个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。当其他线程调用countDown方法会将计数器减一(调用countDown方法的线程不会阻塞), 当计数器的值
阅读全文
摘要:第一.Lock锁 1.1Lock简介 在 Lock 接口出现之前,Java 中的应用程序对于多线程的并发安全处理只能基于synchronized 关键字来解决。但是 synchronized 在有些场景中会存在一些短板,也就是它并不适合于所有的并发场景。但是在 Java5 以后,Lock 的出现可以
阅读全文
摘要:第一.线程的含义 在 Java 中,如果每个请求到达就创建一个新线程,创建和销毁线程花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。 如果在一个 Jvm 里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足为了解决这个问题,就有了线
阅读全文
摘要:第一、多线程介绍 通过任务管理器可以看到进程的存在,进程:进程指正在运行的程序。当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中程序,并且具有独立功能的程序。 线程:在同一个进程有多个执行任务,而这每个任务都可以看成一个线程。 线程是程序的执行单元,执行路径。是程序使用CPU的·最基本单
阅读全文
摘要:第一、生产者消费者的实际的应用 使用的分布式消息队列,比如ActiveMQ、RabbitMQ等等,消息队列的是有可以使得程序之间解耦,提升程序响应效率。 如果我们把多线程环境比作是分布式的话,那么线程与线程之间也可以用这种消息队列的方式进行数据通信和解耦。 第二、阻塞队列的使用案例 注册成功之后新增
阅读全文
摘要:第一、java内存模型 共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。 从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中, 每个线程都有一个私有的本地内存(local
阅读全文