前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

                                再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏


目录

多线程&并发篇

11、有三个线程T1,T2,T3,如何保证顺序执行?

12、SynchronizedMap和ConcurrentHashMap有什么区别?

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~


多线程&并发篇

11、有三个线程T1,T2,T3,如何保证顺序执行?

在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。

实际上先启动三个线程中哪一个都行, 因为在每个线程的run方法中用join方法限定了三个线程的执行顺序。

public class JoinTest2 {// 1.现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行public static void main(String[] args) {final Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("t1");}});final Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {try {// 引用t1线程,等待t1线程执行完t1.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("t2");}});Thread t3 = new Thread(new Runnable() {@Overridepublic void run() {try {// 引用t2线程,等待t2线程执行完t2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("t3");}});t3.start();//这里三个线程的启动顺序可以任意,大家可以试下! t2.start();t1.start();}}

12、SynchronizedMap和ConcurrentHashMap有什么区别?

SynchronizedMap()和Hashtable一样,实现上在调用map所有方法时,都对整个map进行同步。而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁。所以,只要有一个线程访问map,其他线程就无法进入map,而如果一个线程在访问ConcurrentHashMap某个桶时,其他线程,仍然可以对map执行某些操作。

所以,ConcurrentHashMap在性能以及安全性方面,明显比Collections.synchronizedMap()更加有优势。同时,同步操作精确控制到桶,这样,即使在遍历map时,如果其他线程试图对map进行数据修改,也不会抛出ConcurrentModificationException。

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~

多线程并发篇(1024节日快乐)相关推荐

  1. 阿里巴巴面试题- - -多线程并发篇(三十七)

         前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位.为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到 ...

  2. Java面试-多线程并发篇

    1. 说说Java中实现多线程有几种方法 创建线程的常用三种方式: 1. 继承Thread类 2. 实现Runnable接口 3. 实现Callable接口 4. 线程池方式创建 通过继承Thread ...

  3. 大三Java后端暑期实习面经总结——Java多线程并发篇

    博主现在大三在读,从三月开始找暑期实习,暑假准备去tx实习啦!总结下了很多面试真题,希望能帮助正在找工作的大家!相关参考都会标注原文链接,尊重原创! 目录 1. synchronized底层实现原理 ...

  4. 多线程并发知识,肝完这篇10W+字超详细的文章就够了

    大家好,我是Oldou,今天又到了我们的学习时间了,本文介绍的是多线程相关的知识,文中的内容可能不是很全,但是学习完一定会让自己掉发升级,内容比较多,但是我们千万别放弃,不懂的地方一定要主动花时间去理 ...

  5. 【Python之旅】第五篇(三):Python Socket多线程并发

    1.多线程模块 主要是socketserver模块,如下图示: 2.多线程原理 如下图示说明: 3.SockteServer例子说明 服务器端: 客户端: 4.演示 还是以前面例子,对代码进行修改,作 ...

  6. python socket多线程并发_【Python之旅】第五篇(三):Python Socket多线程并发

    前面的几个例子都是单线程的,下面再来说说多线程的. 1.多线程模块 主要是socketserver模块,如下图示: 2.多线程原理 如下图示说明: 3.SockteServer例子说明 服务器端: 客 ...

  7. 【面试:并发篇09:多线程:interrupt 方法详解】

    [面试:并发篇09:多线程:interrupt 方法详解] 00.前言 如果有任何问题请指出,感谢. 01.介绍 程序中,有些线程的中断需要外部干预,比如线程中存在while(true)循环,或者存在 ...

  8. 2021全新Java多线程并发入门到精通,一篇就能学会

    目录 一, JAVA 多线程并发 1,JAVA 并发知识库 2,JAVA 线程实现/创建方式 (1) 继承 Thread 类 (2)实现 Runnable 接口. (3)ExecutorService ...

  9. C++11多线程第一篇:并发基本概念及实现,进程、线程基本概念

    文章目录 1.并发基本概念及实现,进程.线程基本概念 1.1 并发.进程.线程的基本概念和综述 1.1.1 并发.并行 1.1.2 可执行程序 1.1.3 进程 1.1.4 线程 1.1.5 程序.进 ...

最新文章

  1. vue el-form鼠标事件导致页面刷新解决方案;vue 阻止多次点击提交数据通用方法...
  2. 漂亮的PCB设计图案
  3. 知乎完成 2.7 亿美元 E 轮融资 加速建设全民知识内容平台(附周源全员邮件全文)...
  4. 计网 - 一台内存在 8G 左右的服务器,可以同时维护多少个连接?
  5. python读取文件报错必须有一个正确的读写方式_python文件操作
  6. Knockoutjs 实践入门 (2) 绑定事件
  7. 微信接口开发-初级体验
  8. 一、kafka安装下载与kafka初步应用
  9. php pdo insertid,php-在PDO准备好的语句内使用LAST_INSERT_ID插入...
  10. 王者荣耀空白代码_在线空白昵称代码复制
  11. chrome浏览器版本和driver版本对照表
  12. 巴菲特慈善午餐拍卖活动结束 成交价达457万美元
  13. LCD 液晶显示器 ---------- LTDC 控制器
  14. springMVC + Dubbo + zooKeeper超详细 步骤
  15. Node课程(3,2,1,8,3)
  16. 互联收集金融,其实是门苦商业
  17. 计算机专业规划书实地访谈,计算机专业职业生涯规划书(1).doc
  18. 中国FPGA芯片技术解析
  19. 走进Spring Cloud之二 eureka注册中心(Greenwich版本)
  20. 普法 | 如果你被裁员,赔偿金是N、N+1、2N呢?

热门文章

  1. 2022.03全国青少年软件编程(图形化)等级考试试卷(四级)
  2. PointNet++等3D点云中用到的.cu、.cpp文件的编译的简单理解
  3. 今天差点就被黑中介给骗了!!!!!!后怕中。。。
  4. 深度神经网络的训练过程,深度神经网络如何训练
  5. win10查看服务器共享文件夹权限,win10共享文件夹win7没有权限访问的解决教程
  6. lisp语言cond和if套用_LISP语言入门(CLISP)
  7. matlab升幂降幂排列,升幂排列与降幂排列
  8. 网页性能测试工具大全
  9. java -io字符流FileWrite操作演示
  10. java 捕获sigkill,如何杀死由kill或kill -9上的脚本启动的进程生成的所有子进程