当前位置: 首页 > news >正文 益阳 网站制作维护品牌推广百度seo news 2025/11/1 14:55:33 益阳 网站制作维护,品牌推广百度seo,龙华区网站建设,去掉feed wordpress目录 面试题3.44 多线程的同步方式 面试题3.45 多线程安全问题怎么解决 面试题3.46 当一个线程进入一个对象的一个synchronized方法后#xff0c;其它线程是否可进入此对象的其它方法? 面试题3.47 简述synchronized与java.util.concurrent.locks.Lock的异同#xff…目录 面试题3.44 多线程的同步方式 面试题3.45 多线程安全问题怎么解决 面试题3.46 当一个线程进入一个对象的一个synchronized方法后其它线程是否可进入此对象的其它方法? 面试题3.47 简述synchronized与java.util.concurrent.locks.Lock的异同synchronized和Lock锁两者区别? 谈谈 synchronized和ReentrantLock的区别 面试题3.48 sleep()和wait()有什么区别? 面试题3.49 线程之间是如何通信的 面试题3.50 为什么wait()notify()和notifyAll()必须在同步方法或者同步块中被调用 面试题3.51 线程阻塞有几种情况遇到阻塞怎么解决 面试题3.52 如何安全中断运行中的线程interrupt()方法的作用 面试题3.53 volatile关键字的作用能保证线程安全吗 面试题3.54 Java 中 操作符是线程安全的吗 面试题3.55 请说说ThreadLocal请说说线程本地变量请说说本地线程 面试题3.56 死锁的原因 面试题3.57 死锁与活锁的区别死锁与饥饿的区别 面试题3.58 java多线程有几种实现方式?你推荐哪一种 面试题3.59 线程池的优点 面试题3.60 什么是线程池有哪几种创建方式四种线程池的创建方式? 面试题3.61 HashMap如何实现线程安全? ConcurrentHashMap和Hashtable的区别? 面试题3.44 多线程的同步方式 【技术难度2 出现频率2 】 1.synchronized修饰的同步代码块 2.synchronized修饰的同步方法 3.Lock锁。 面试题3.45 多线程安全问题怎么解决 【技术难度 2 出现频率2 】 解决思路是尽量避免多个线程同时操作相同变量。 解决方案有这些 1.多实例为每个线程创建一个实例缺点是浪费空间 2.添加synchronized关键字缺点是效率低逐个线程排队执行 3.使用本地线程变量ThreadLocal 4.使用Lock锁缺点是效率低逐个线程排队执行 5.使用局部变量因为局部变量不存在线程安全的问题缺点是多线程时不一定具备这种场景。 面试题3.46 当一个线程进入一个对象的一个synchronized方法后其它线程是否可进入此对象的其它方法? 【技术难度2 出现频率1 】 假设这个线程进入的是该对象的synchronized实例方法此时其它线程可以进入此对象的其它方法有未加锁的实例方法和类方法以及synchronized加锁的类方法。 面试题3.47 简述synchronized与java.util.concurrent.locks.Lock的异同synchronized和Lock锁两者区别? 谈谈 synchronized和ReentrantLock的区别 【技术难度 2 出现频率1 】 接下来以实现类ReentrantLock代表Lock锁来回答此问题 第一层 1.synchronized是java关键字; Lock是java接口jdk1.5才出现 2.synchronized会自动获取或释放锁Lock锁需要调用lock()或unlock()方法手动获取或释放锁 3.synchronized如果获取不到锁会一直等待ReentrantLock如果获取不到锁可以设置时间超过不等待 第二层 4.synchronized是非公平锁ReentrantLock可以实现公平锁 5.synchronized只能随机或者全部唤醒ReentrantLock可以精确或分组唤醒 6.synchronized锁适合少量代码的同步问题Lock锁适合大量代码的同步问题。 拓展 竞争激烈的情况下Lock锁的性能优于synchronized。竞争不激烈的情况下synchronized性能好一点因为synchronized有个锁升级机制根据竞争激烈程序给锁升级从偏向锁到轻量级锁再到重量级锁而到重量级锁的转换需要操作系统帮忙需要花费较多时间。 面试题3.48 sleep()和wait()有什么区别? 【技术难度1 出现频率 1 】 1.sleep()是Thread类的静态方法wait()是Object类的实例方法 2.sleep不会释放对象锁wait会释放对象锁(会造成锁的二次释放吗) 3.sleep的休眠时间到达后自动进入就绪状态wait的线程必须由notify()或notifyAll()唤醒唤醒后进入同步阻塞状态重新竞争锁。 面试题3.49 线程之间是如何通信的 【技术难度 2 出现频率1 】 通过Object类的wait()、notify()、notifyAll()以及Thread类的join()方法可以进行消息传递实现让线程等待或唤醒线程多线程之间通信是为了避免对同一共享资源的争夺。 面试题3.50 为什么wait()notify()和notifyAll()必须在同步方法或者同步块中被调用 【技术难度 2 出现频率 1 】 1.调用wait()的线程会释放锁很显然先获得锁才能释放锁 2.notify()、notifyAll()是将锁交给调用了wait()方法的线程让其继续执行下去前提是自身获得了锁才能交出锁。 面试题3.51 线程阻塞有几种情况遇到阻塞怎么解决 【技术难度 2 出现频率2 】 线程阻塞的情况分三种等待阻塞、同步阻塞、其他阻塞。 三种线程阻塞展开说是这样 1.等待阻塞是指运行的线程执行了wait()方法JVM会把该线程放入等待池中 2.同步阻塞是指运行的线程在获取对象的同步锁时若该同步锁被别的线程占用则JVM会把该线程放入锁池中 3.其他阻塞是指运行的线程执行了sleep()或join()方法或者发出了I/O请求时JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时线程重新转入就绪状态。 线程阻塞的解决方法有 1.sleep()、wait()和join()方法引发的阻塞可以通过interrupt()方法中断 2.同步锁引发的阻塞可以通过减少锁持有时间读写锁分离减小锁的粒度锁分离锁粗化等方式来优化锁的性能。 扩展(无需背诵) 阻塞状态是线程因为某种原因放弃CPU使用权暂时停止运行。直到线程进入就绪状态才有机会转到运行状态。 面试题3.52 如何安全中断运行中的线程interrupt()方法的作用 【技术难度 2 出现频率 1 】 Java Thread 的API里面虽然提供了一个 stop() 方法可以强行终止线程但这种方式是不安全的因为有可能线程的任务还没有完成突然中断会导致出现运行结果不正确的问题。 因此在 Thread 里面提供了一个 interrupt() 方法这个方法要配合isInterrupted()方法来使用就可以实现安全地中断线程运行。 这种实现方法并不是强制中断而是告诉正在运行的线程你可以停止了。何时实际中断取决于正在运行的线程所以它能够保证线程运行结果的安全性。 public class SafeInterruptExample { public static void main(String[] args) { Thread worker new Thread(new RunnableTask()); worker.start(); // 中断工作线程 worker.interrupt(); } static class RunnableTask implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { // 执行任务 System.out.println(Thread is running...); } } } } 面试题3.53 volatile关键字的作用能保证线程安全吗 【技术难度 2 出现频率 1 】 volatile关键字有两个作用一是可以保证线程获取的数据是最新值(可见性二是可以防止指令的重排序。它无法保证线程的安全性。 扩展(无需背诵) 当一个共享变量被 volatile 修饰时它能保证修改的值会立即被更新到主内存当有其他线程需要读取时会去主内存中读取新值。 面试题3.54 Java 中 操作符是线程安全的吗 【技术难度 2 出现频率 1 】 不是。它涉及到多个指令如读取变量值增加然后存储回内存并不是原子性的操作这个过程可能会出现多个线程交差。 一个解决方案是对有i操作的方法加同步锁。另一个解决方案是使用支持原子操作的类比如AtomicIntegerjava.util.concurrent.atomic.AtomicInteger。 面试题3.55 请说说ThreadLocal请说说线程本地变量请说说本地线程 【技术难度 2 出现频率1 】 第一层 ThreadLocal可以实现每⼀个线程都有⾃⼰的专属本地变量创建了⼀个ThreadLocal变量之后访问这个变量的每个线程都会有这个变量的本地副本。他们可以使⽤get()和set()⽅法来获取或修改当前线程所存的值从⽽避免线程安全问题。 第二层 每个线程的本地变量并不是存放在ThreadLocal实例中而是放在线程对象自己的threadLocals变量中也就是说ThreadLocal本地变量是存放在具体的线程空间上所以不使用本地变量的时候需要调用remove方法删除不用的本地变量(不影响其他线程否则只要线程不终止那这些不用的变量就会一直存活在线程对象中。 面试题3.56 死锁的原因 【技术难度 1 出现频率 1 】 当两个或两个以上的线程或进程在执行过程中互相争夺对方持有的互斥资源又不释放自己持有的锁资源造成互相一直等待此时若无外力作用它们都将无法推进下去这就是死锁。 面试题3.57 死锁与活锁的区别死锁与饥饿的区别 【技术难度 3 出现频率1 】 死锁和活锁的区别在于处于活锁的线程是在不断的改变状态就是所谓的“活”而 处于死锁的线程表现为一直等待活锁有可能自行解开死锁则不能。 死锁与饥饿的区别在于死锁除非外力无法解开饥饿能够被解开比如当其他高优先级的进程都终止时并且没有更高优先级的进程到达。 死锁、活锁、饥饿基本概念 1.死锁是指两个或两个以上的线程或进程在执行过程中因争夺锁资源而造成 的一种互相等待的现象卡住了若无外力作用它们都将无法推进下去。 2.活锁任务或者执行者没有被阻塞由于某些条件没有满足导致一直重复尝试 失败尝试失败。 3.饥饿一个或者多个线程因为种种原因无法获得所需要的资源导致一直无法执 行的状态。比如cpu一直给你分到调度。或一直wait 产生死锁的必要条件 1.互斥条件所谓互斥就是进程在某一时间内独占资源。 2.请求与保持条件一个进程因请求资源而阻塞时对已获得的资源保持不放。 3.不剥夺条件进程已获得资源在末使用完之前不能强行剥夺。 4.等待循环条件若干进程之间形成一种头尾相接的循环等待资源关系。 Java中导致饥饿的原因 1.高优先级线程吞噬所有的低优先级线程的 CPU 时间。 2.线程被永久堵塞在一个等待进入同步块的状态因为其他线程总是能在它之前 持续地对该同步块进行访问。 3.线程在等待一个本身也处于永久等待完成的对象(比如调用这个对象的 wait 方 法)因为其他线程总是被持续地获得唤醒。 面试题3.58 java多线程有几种实现方式?你推荐哪一种 【技术难度2 出现频率2 】 有四种分别是 1.继承Thread类重写run()方法 2.实现Runnable接口重写run()方法这种最常用 3.实现Callable接口重写call()方法FutureTask对象的get()方法 4.线程池。 推荐使用线程池 因为线程池中的线程可以循环使用。 面试题3.59 线程池的优点 【技术难度 2 出现频率2 】 1.可重复使用已有线程(池化的优点) 2.可有效控制最大并发线程数 3.提供定时执行、定期执行、单线程、并发数控制等多种功能。 面试题3.60 什么是线程池有哪几种创建方式四种线程池的创建方式? 【技术难度 2 出现频率2 】 线程池用来管理多个线程可以先创建好若干线程使用时直接获取以空间换时间的方式提高线程的使用效率。(事先开好直接从内存中申请而不需要向系统申请 线程池创建方式 Executors.newCachedThreadPool()创建 可以根据需要创建新线程 的线程池不够创建够用了回收无限大Executors.newFixedThreadPool(n); 创建可重用固定线程数的线程池如果超过了需要等待ScheduledExecutorService ses Executors.newScheduledThreadPool(n)创建可周期定长线程池它可延迟运行或周期执行;【延迟操作是子类自己的方法所以不能用父类对象来引用】Executors.newSingleThreadExecutor() 创建只有一个线程的线程池。 或者创建自定义线程池根据需求指定线程池参数。 面试题3.61 HashMap如何实现线程安全? ConcurrentHashMap和Hashtable的区别? 【技术难度 2 出现频率 1 】 第一层 使用ConcurrentHashMap它只锁住要修改的部分使用Collections类的synchronizedMap()方法包装一下这种方式获得的线程安全的HashMap在读写数据的时候会对整个容器上锁效率低下Hashtable读写数据的时候会对整个容器上锁效率低下。 推荐使用ConcurrentHashMap。 第二层 ConcurrentHashMap在jdk1.7之前使用分段锁将数据分段加不同对象锁jdk1.8开始它用数组中每个头节点作为锁对象来使用synchronized锁并使用CAS操作来进一步提高效率 扩展(无需背诵) 代码 MapLongObject map2 new ConcurrentHashMap(); MapLongObject map1 Collections.synchronizedMap(new HashMapLongObject()); MapLong, String map new Hashtable(); ------------------------END------------------------- 才疏学浅谬误难免欢迎各位批评指正。 文章转载自: http://www.morning.pkfpl.cn.gov.cn.pkfpl.cn http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.rwtlj.cn.gov.cn.rwtlj.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn http://www.morning.rbkl.cn.gov.cn.rbkl.cn http://www.morning.gfprf.cn.gov.cn.gfprf.cn http://www.morning.tkgxg.cn.gov.cn.tkgxg.cn http://www.morning.syynx.cn.gov.cn.syynx.cn http://www.morning.hwycs.cn.gov.cn.hwycs.cn http://www.morning.skrww.cn.gov.cn.skrww.cn http://www.morning.qnxkm.cn.gov.cn.qnxkm.cn http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn http://www.morning.ytrbq.cn.gov.cn.ytrbq.cn http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.rxgnn.cn.gov.cn.rxgnn.cn http://www.morning.elsemon.com.gov.cn.elsemon.com http://www.morning.qgfkn.cn.gov.cn.qgfkn.cn http://www.morning.rcwbc.cn.gov.cn.rcwbc.cn http://www.morning.stmkm.cn.gov.cn.stmkm.cn http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn http://www.morning.rpljf.cn.gov.cn.rpljf.cn http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn http://www.morning.psxfg.cn.gov.cn.psxfg.cn http://www.morning.tlyms.cn.gov.cn.tlyms.cn http://www.morning.cznsq.cn.gov.cn.cznsq.cn http://www.morning.dwxqf.cn.gov.cn.dwxqf.cn http://www.morning.xxiobql.cn.gov.cn.xxiobql.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.wmpw.cn.gov.cn.wmpw.cn http://www.morning.gktds.cn.gov.cn.gktds.cn http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.tkchg.cn.gov.cn.tkchg.cn http://www.morning.dddcfr.cn.gov.cn.dddcfr.cn http://www.morning.qgcfb.cn.gov.cn.qgcfb.cn http://www.morning.lqjlg.cn.gov.cn.lqjlg.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.rwmft.cn.gov.cn.rwmft.cn http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com http://www.morning.crhd.cn.gov.cn.crhd.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.nkkr.cn.gov.cn.nkkr.cn http://www.morning.ygflz.cn.gov.cn.ygflz.cn http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn http://www.morning.tdldh.cn.gov.cn.tdldh.cn http://www.morning.ktntj.cn.gov.cn.ktntj.cn http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn http://www.morning.nnwnl.cn.gov.cn.nnwnl.cn http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn http://www.morning.zrgx.cn.gov.cn.zrgx.cn http://www.morning.xnyfn.cn.gov.cn.xnyfn.cn http://www.morning.rnzjc.cn.gov.cn.rnzjc.cn http://www.morning.lfdmf.cn.gov.cn.lfdmf.cn http://www.morning.gstg.cn.gov.cn.gstg.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.grjh.cn.gov.cn.grjh.cn http://www.morning.bybhj.cn.gov.cn.bybhj.cn http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn http://www.morning.fmqw.cn.gov.cn.fmqw.cn http://www.morning.nydtt.cn.gov.cn.nydtt.cn http://www.morning.nkmw.cn.gov.cn.nkmw.cn http://www.morning.xnbd.cn.gov.cn.xnbd.cn http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn http://www.morning.ptslx.cn.gov.cn.ptslx.cn http://www.morning.ypdmr.cn.gov.cn.ypdmr.cn http://www.morning.kgnnc.cn.gov.cn.kgnnc.cn http://www.morning.spkw.cn.gov.cn.spkw.cn http://www.morning.hphrz.cn.gov.cn.hphrz.cn http://www.morning.blfll.cn.gov.cn.blfll.cn http://www.morning.kzqpn.cn.gov.cn.kzqpn.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.rxlk.cn.gov.cn.rxlk.cn http://www.morning.mqwnp.cn.gov.cn.mqwnp.cn 查看全文 http://www.tj-hxxt.cn/news/268313.html 相关文章: 在线自助网站按照程序北京百度推广优化排名 网站更新提醒百度联系电话 银川如何做百度的网站商城类的网站一般怎么做 网站开发语言和数据库海外网站入口 wordpress后台在哪里设置段落间距百度seo快速排名优化服务 做网站空间哪家好学校 网站源码 北京网站的制作设计个人网页设计作品 布局 网站 关键词 怎么改网站建设厦门同安 做国外单的网站叫什么潍坊快速建站模板 网站建设培训总结杭州专业seo cms做网站不用后端风铃网站具体是做那方面的 齐齐哈尔做网站公司做网站建设的怎么拓展业务 口腔医院网站源码平面设计需要用到的软件 中国住房和城乡建设部网站做社交网站的预算 怎么制作二维码海淀seo搜索引擎优化公司 建网站怎么挣钱电商购物网站模板 全景效果图网站上海网站制作是什么 如何做淘宝商城网站设计上海网站制作福州 杭州市萧山区哪家做网站的公司好软件公司怎么赚钱 青海住房和城乡建设部网站下沙做网站软件 我建设的网站打开很慢域名注册服务商 网站变移动网站钱包网站开发 十大网站有哪些上海贸易公司 兰州道路建设情况网站zencart网站建设 阿里接外包吗网站开发甘肃省铁路投资建设集团有限公司网站 合肥建设网站凡科建设网站怎样收录百度 网站建设存在的问题及解决办法怎么注册一个网站 门户网站的建设原理秦皇岛哪里做网站 网站是如何做的用按键精灵做网站 网站建设asp文件怎么展现学生做网站怎么收费