线程之间如何通信的,是对象锁,什么是类锁,
线程都有自己的私有空间,多个线程进行同步协作的时候,就需要进行线程间通信 线程通信的方法分为几点:
-
锁与同步:主要针对全局变量进行加锁,即用synchroized关键字对对象或者代码块加锁lock,用于达成线程间通信。
-
等待/通知机制。Java多线程的等待和通知机制是基于Object类的wait()方法和notify(),notifyAll()方法来实现的。
-
join()方法让当前线程陷入“等待”状态,等join的这个线程执行完成后,再继续执行当前线程。
当主线程创建并启动了耗时子线程,而主线程早于子线程结束之前结束时,就可以用join方法等子线程执行完毕后,从而让主线程获得子线程中的处理完的某个数据。 join()方法及其重载方法底层都是利用了wait(long)这个方法。
对象锁,类锁: 对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态 方法或者一个类的 class 对象上的。我们知道,类的对象实例可以有很多个,但 是每个类只有一个 class 对象,所以不同对象实例的对象锁是互不干扰的,但是 每个类只有一个类锁。 但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存 在的,类锁其实锁的是每个类的对应的 class 对象。类锁和对象锁之间也是互不干扰的。
线程之间如何通信的?
什么是对象锁,什么是类锁?
es搜索引擎里面怎么创建索引?
如果es里面想要自定义分词怎么办?
redis集群 hash槽的优点?
短信防刷 ?
object下有什么方法 object方法中 唤起线程的方法 挂掉的方法 ?
springcould五大组件 ?
MySQL 存储引擎 索引区别 ?
倒排索引 ElasticSearch 读写分离 ?
Redis的数据类型 ?
用的什么分布式锁 ?
sql优化(多种优化方式)?
不用Redis如何减轻MySQL压力(多种方式)?
springcould用什么方式调用的 码云git 远程的master还是本地的master?
了解过mybatis的原理之类的吗?
手写单例模式 ?
了解设计模式吗?
java的集合框架 (Map,Set,List) ?
map怎么用的 ?
MySQL隔离级别 MySQL事务 ?
秒杀超买超卖的解决方案,上亿级数据量的表的设计能力,接口安全性(不是幂等), ?
RabbitMQ丢消息解决方案,(消息落地持久化,RabbitMQ的ack确认机制) ?
JVM为什么会有新生代老年代如何工作, ?
多线程的使用, ?
索引底层原理, ?
mybatis的一级缓存二级缓存, ?
SpringAOP、IOC原理, ?
AQS,CAS, ?
RESTFUL的使用 ?
订单模块为什么使用rabbit? ?
订单号在高并发情况下如何保证唯一性? ?
如何保证幂等?
每天代码有评审吗?
为什么生产者中要避免使用System.out.print();?
哪里使用过Redis?
假如分给你一个商品模块,你会如何设计?
平常研究过哪些技术?
项目周期大概多久?
es实时性() ?
redis的淘汰策略 ?
reetrantlock的底层原理 cas ABA问题 ?
cms的垃圾回收算法 jvm的垃圾回收 ?
RabbitMQ丢消息 RabbitMQ 集群模式
你项目中遇到了什么问题 多线程在哪里用了 怎么用的
eureka相互注册是怎么注册的
mysql的三大范式 算法问题 猴子搬香蕉
mysql的底层原理 B+树和B-树的区别
mysql的底层为什么不选用hash
RPC通信的过程
hashmap的底层原理
mybatis中接口里的方法可以重载嘛
mysql的主键索引和普通索引的区别
SpringMVC的运行原理
mybatis是怎么配置的
String String buffer Stringbuilder的区别、
synchronized和ReentrantLock的区别
反射的用途及实现、DispatcherServlet的工作流程、
如何获取自动生成的主键、
spring MVC拦截器、
如何设计一个权限系统、
JVM性能调优、(CPU,内存溢出(),)
分布式事务问题、
bean的生命周期、
栈、堆、静态方法的用法、处理异常的关键字及用法。
消息队列的几种模式、
Redis加锁命令、
Controller和RestController的区别。
项目中哪些地方用到了aop;
项目中rabbitmq 发送消息和消费消息的过程;
springcloud与dubbo的区别;
你在项目中参与的角色;制;
eureka 集群中如果有一个节点下有大量实例挂掉的话,心跳检测失败,eureka 会怎么处理;
ioc用到哪些设计模式及场景;
bean的实例化过程;
springboot启动器的理解;
面向切面编程的理解;
static的理解;
用过哪种线程池;
什么是组合索引;
什么是单例模式及好处;
spring容器怎么实现多例;
数据库多对多;
为什么不用直接掉接口的方式;
#和$的区别;
分表如何实现;
session共享怎么实现;
抽象类和接口的区别;
身份认证线程池中,一个任务失败怎么回滚,
线程池还在那方面使用,
项目属于那家公司,
SpringCloud的运行流程,Docker的优点和不足,
Mysql数据库优化(就只是建了索引吗?),
Spring是怎么自动注入,类加载器有几中,
SpringConfig配置,
SpringMVC拦截器,
设计模式,线上问题解决,
sql语句一对多 多条记录 查询结果为一条记录 ,
springBoot依赖注入方式,设计模式,
springboot怎么配置 yml和propeties配置区别
yml怎么配置数组
解释定时 匿名内部类 用户安全怎么保障
操作系统 前台首页显示总流水如何显示
jstack 和jmap区别
@Configuration 和 @Component 区别
Mq消息丢失如何处理
你做的项目最值得你骄傲的地方是哪,
什么叫死信队列,
如何解决重复消费,
怎么实现接口幂等性,
你了解lua脚本吗,
继承thread和实现callable有什么区别,
jdk1.8有哪些新特性
Gateway有哪些拦截器,流程是怎么样的
Es和Solr的区别
mysql左连接,右连接和内连接有什么区别
Synchronized 锁升升级过程?
解决线程安全的方式。
项目中用到的单例模式
两个spring Bean 不互相引用,怎么获得对方的值,
用户登录,生成token 存入redis中,如果此时redis宕机了,你这时用户该怎么处理?
spring 注入方式