07 2019 档案
摘要:注:本文都是对官方文档的搬运: https://redis.io/documentation https://redis.io/topics/data-types-intro Redis的数据类型 Redis支持五种数据类型:Strings(字符串)、Hashes(哈希)、Lists(列表)、Set
阅读全文
摘要:1、什么是消息中间件 消息队列中间件(MessageQueueMiddleware,简称为MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 1.1传递模式 1)点对点模式 基于队
阅读全文
摘要:锁是Java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 锁的获取和释放 线程释放锁时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存中。 线程获取锁时,JMM会把该线程对应的本地内存置为无效。从而使得被监视器保护的临界区代码必须从
阅读全文
摘要:线程间如何通信以及如何同步? 线程通信 通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 共享内存 共享内存 在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。 消息传递 线程之间没有公共状态,线程之间必须
阅读全文
摘要:synchronized JDK1.6对synchronized进行了各种优化,性能已经和ReentrantLock差不多了。 Java中的每一个对象都可以作为锁。具体表现为以下3种形式。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是Sy
阅读全文
摘要:什么是“可见性” 可见性 可见性 可见性是指一个线程修改一个共享变量时,另一个线程能读取到这个修改的值。 关于volatile Volatile Volatile 写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存。 一个volatile变量时,JMM会把该线程对
阅读全文

浙公网安备 33010602011771号