范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Java多线程,被面试官难倒了

  本期是【 大厂面试 】系列文章的第 5 期,题目来源于网络。 面试现场
  面试官 : 看你简历上写了精通多线程,来聊聊,为什么要使用多线程呢?
  独白:精通...您不会真信了吧...
  大彬 :使用多线程最主要的原因是提高系统的资源利用率。
  大彬 :多个线程同时运行,可以减少线程上下文切换的开销,提高并发的能力和CPU的利用效率。
  大彬 :在平时工作中多线程也是常见的。比如Tomcat每处理一个请求都会从线程连接池里取一个线程去处理。
  面试官 : 嗯,那什么场景可以使用多线程呢?
  大彬 :一些并发量大的场景,比如读入大量文件写入数据库,使用多线程能够极大提高效率。
  大彬 :耗时比较长的任务,比如用户注册之后发送邮件、短信之类的操作,这种任务就算失败了也不是特别重要,可以使用异步线程去处理。
  大彬 :定时任务,比如定期更新配置文件、备份数据之类的任务。
  面试官 : 嗯,平时在使用多线程的时候,可能会遇到线程安全的问题吧。讲讲什么是线程安全?
  大彬 :我是这么理解的,当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。
  面试官 : 那你平时怎么处理线程安全问题的?
  独白:幸亏看了【面试笔记】,不慌哈哈
  大彬 :这个还得具体问题具体分析。首先判断有没有线程安全问题,若有则根据具体的情况去处理线程安全的问题。
  大彬 :比如涉及到操作的原子性,可以考虑使用原子类。
  大彬 :如果涉及到对线程的控制,可以考虑线程工具类 CountDownLatch /Semaphore 等等。
  大彬 :集合类的话,考虑 java.util.concurrent 包下的集合类。
  大彬 :还有 synchronized 和lock 包下的类,redis分布式锁等。
  面试官 :刚刚提到 synchronized ,讲讲它的底层原理?
  独白:底层原理...裂开
  大彬 : synchronized  同步代码块的实现是通过 monitorenter 和 monitorexit 指令,其中 monitorenter 指令指向同步代码块的开始位置,monitorexit 指令则指明同步代码块的结束位置。当执行 monitorenter 指令时,线程试图获取锁也就是获取 monitor 的持有权。
  独白:monitor对象存在于每个Java对象的对象头中, synchronized 锁便是通过这种方式获取锁的,这也是为什么Java中任意对象可以作为锁的原因。
  大彬 :其内部包含一个计数器,当计数器为0则可以成功获取,获取后将锁计数器设为1也就是加1。相应的在 执行 monitorexit 指令后,将锁计数器设为0 ,表明锁被释放。如果获取对象锁失败,那当前线程就要阻塞等待,直到锁被另外一个线程释放为止。
  大彬 : synchronized  修饰的方法并没有 monitorenter 指令和 monitorexit 指令,取得代之的确实是ACC_SYNCHRONIZED 标识,该标识指明了该方法是一个同步方法,JVM 通过该 ACC_SYNCHRONIZED  访问标志来辨别一个方法是否声明为同步方法,从而执行相应的同步调用。
  面试官 :那synchronized和ReentrantLock有什么区别呢?
  大彬 : 使用synchronized关键字实现同步,线程执行完同步代码块会自动释放锁,而ReentrantLock需要手动释放锁。 synchronized是非公平锁,ReentrantLock默认是非公平锁,可以设置为公平锁。 ReentrantLock上等待获取锁的线程是可中断的,线程可以放弃等待锁。而synchonized会无限期等待下去。 ReentrantLock 可以设置超时获取锁。在指定的截止时间之前获取锁,如果截止时间到了还没有获取到锁,则返回。 ReentrantLock 的 tryLock() 方法可以尝试非阻塞的获取锁,调用该方法后立刻返回,如果能够获取则返回true,否则返回false。
  面试官 :什么叫公平锁和非公平锁?
  大彬 :如果是按照线程访问顺序去获取对象锁,则为公平锁,否则为非公平锁。
  面试官 :知道什么是CAS吗?
  大彬 :嗯,CAS全称Compare And Swap,比较与交换,是乐观锁的主要实现方式。CAS 在不使用锁的情况下实现多线程之间的变量同步。ReentrantLock 内部的 AQS 和原子类内部都使用了 CAS。
  大彬 :CAS算法涉及到三个操作数:需要读写的内存值 V;进行比较的值 A;要写入的新值 B。
  大彬 :只有当 V 的值等于 A 时,才会使用原子方式用新值B来更新V的值,否则会继续重试直到成功更新值。
  大彬 :以 AtomicInteger 为例,AtomicInteger 的 getAndIncrement()方法底层就是CAS实现,关键代码是  compareAndSwapInt(obj, offset, expect, update) ,其含义就是,如果obj 内的value 和expect 相等,就证明没有其他线程改变过这个变量,那么就更新它为update ,如果不相等,那就会继续重试直到成功更新值。
  面试官 :基础掌握的不错,今天面试就到这吧~

影像体验解读OPPOReno6超大杯会是你的Vlog之机么?在手机影像系统越来越发达的今天,不少人都会用自己的手机记录下生活中的瞬间。不过,有些人却因为不会化妆,而没有胆量站在镜头前。随着科技的进步,我们也有了很多现代的科技手段能够解决这一程序员2021。8。160黑客称盗窃只是为了好玩退还39亿的加密货币,对钱不感兴趣攻陷PolyNetwork加密货币平台的黑客表示,盗窃只是为了好玩)该黑客现退还盗取的加密货币。黑客还声称,这些货币已转移跨境电商还有出路吗?上周末收到深圳客户(一个专做亚马逊的跨境电商)通知,原来准备计划生产的一批货暂时不需要了,等他们的进一步通知。我其实早就预料到了,这事情早晚有一天会发生。今年五月份以来,亚马逊开始集齐了淘宝京东拼多多,国美折上折APP要干啥?七夕期间,南方记者从广州国美获悉,国美近期推出折上折APP。国美折上折平台CEO张金鹏表示,国美折上折APP作为一个提供海量折上折券的优惠券门户,与其他购物平台和返利平台最大的不同干掉XMLMapper,新出的FluentMybatis真香使用fluentmybatis可以不用写具体的xml文件,通过javaapi可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。不再需要在Dao中组装查询或更新操作iPhonese2使用一个月的感受苹果se第二代这款手机在发布之前很多人都抱着一种期待去看待这款手机,但是在发布后这酷似苹果8的造型让很多人选择了放弃。屏下摄像头都有了在这个全面屏的时代宽大的下巴并不是很招人喜爱反Ruff迷你网关搭载SaaS实现零代码配置,独创智能屏显2021年二季度,Ruff南潮物联通用无线数传场景的小网关RGWi0600开始实现量产,从前期研发到落地商用,仅用时3个月时间。同时,可以云端远程配置的RuffIoT设备管理平台1谁在为自动驾驶隐患买单?撰文郑文编辑匡吉旧世界正在崩塌,新世界仍未成型。在我们身后,过去那个光怪陆离的世界已经逐渐闭合,而在我们面前,新世界的大门仓促打开,人们懵懂而又按图索骥地生活着,需要不断地重返旧世诺基亚63008000系统更新,支持支付宝支付8月17日消息,诺基亚手机今天宣布,Nokia63004G和Nokia80004G已支持支付宝扫码支付功能,系统更新后就能使用。根据诺基亚官方的介绍,诺基亚80004G和诺基亚63国内手机厂商的命名能改改了国内手机厂商的命名,总体给人感觉有几个特点随意跟风定位不清晰。(说明以下几个厂商只是举个栗子,不黑)随意华为Mate1Mate2Mate7Mate10Mate20Mate50Mat饿了么与美团有什么不同关于外卖的两大巨头美团和饿了么相信大家都不是很陌生,到他们到底有什么不同估计还是有很多朋友不是很清楚,下面就为大家介绍一下,先说下饿了么,饿了么单量相比美团要少很多,但人也少很多,
手机测评2022年01月19日新消息手机测评手机测评2022年01月19日新消息经过28000次微跌测试依旧如新?OPPOA96品质果然够硬折叠屏究竟是不是未来手机的方向我们在荣耀MagicV上找到了答案三星Gala。NET下如何拦截鼠标键盘消息?Win32NET来帮你Win32NET是一个Win32API的。NET下封装的类库,包含1常用win32的API的net封装2鼠标键盘热键hook钩子模块,3模拟键盘输入文字(支持各种字符文字不同语言的如何提升数据结构方面的算法能力?我们学习c语言是学习如何编写程序,而数据结构可以帮助我们如何简洁高效的编写程序,那如何提升数据结构体的算法能力呢?当我们遇到一个实际的问题,需要写程序去解决,我们需要解决的是两方面南财研选国务院发文加快充换电基础设施建设,宁德时代发布换电方案,这一赛道风口再次袭来?南方财经1月19日电,1月18日下午,宁德时代全资子公司时代电服,发布了换电服务品牌EVOGO及组合换电整体解决方案。据悉,此次宁德时代新推出的换电产品未来将会面向全部车企。有分析2022年数据中心物理基础设施市场路向何方新年总是回顾和反思前一年的好时机,对于DellOro集团的数据中心物理基础设施研究来说,这是一个令人兴奋的时刻。对于数据中心物理基础设施市场,2021年可以分为两大主题。在2021火山喷发会减缓气候变暖吗?气象专家回应来源人民网从最新的FY4B火山灰云合成方案制作的云图动画上看,火山灰云中的大部分矿物颗粒物质在火山爆发点周围徘徊并逐渐沉降,并逐渐向西扩散。经分析,这部分浅绿色云团主要是由火山灰云iPhoneSE3将改头换面,终于变成了我喜欢的样子iPhoneSE3是苹果科技巨头预计在今年4月推出的一款中低端智能手机,凭借其低廉的价格和出色的性能优势,该机有望在不久的将来掀起波澜。据悉,这款中低端手机很有可能会在外观上与iP到2025年,广西力争新能源汽车新车产销量超100万辆年近日,我区印发广西新能源汽车产业发展十四五规划。根据规划,到2025年,我区力争建成国内重要的新能源汽车生产基地研发基地和产业链核心零部件配套生产基地生产规模居全国前列,新能源汽车大学生想自学编程为今后做准备,请问是应该选择c语言还是python还是其他的语言,或者是其他的推荐吗?助攻Python,朝人工智能方向研究首先你要想清楚自己想往编程的哪个方向发展。比如说做web开发,前端开发,游戏开发,嵌入式开发,大数据分析等。编程语言没有好与坏之分,只有合适与不50年后,大家都开电动车了,导致电价比油费还贵,是什么体验?不可能的!一辆电动车按每年行驶1万公里计算,每百公里按耗电15度计算,每年耗电1500度,全国按3亿辆计算,总耗电4500亿度。中国2021年全年发电量81122亿度,4500亿度比特币暴跌是什么原因?看到大家的回答似乎都没在点子上,我个人认为主要有三点原因一个是根本原因,还有两个是短期因素。1。根本原因大家都知道数字货币核心是啥?叫做去中心化,去中心化当然针对的是权威,那么不给