pursue wind pursue wind
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
  • 技术面试题篇

  • 面试准备篇

  • 技术面试题自测篇

  • 练级攻略篇

  • 工作篇

  • 面经篇

  • 笑傲Java面试

    • 2-1 导学-Java编程技巧部分
    • 2-2 IDEA Java配置补充
    • 2-4 Java8 Stream 接口:流和并发计算实例
    • 2-5 和面试官聊聊实现管道和流计算的基石:函数式的Monad
    • 2-6 Buffer的原理和使用场景+面试题解读
    • 2-7 补充提问:同步和阻塞、异步和非阻塞等不等价?
    • 2-8 阿里面试题:中文乱码处理和大文件计算词频
    • 2-9 实战场景Coding训练:解读反射+代理+AOP 并结合业务逻辑实现
    • 2-10 注解部分答案
    • 2-11 反射-元编程面试题目合集
    • 2-12 面试必备:Java8-11的新特性和理解的误区
    • 2-13 白板篇-Java编程总结(以及面试题)
    • 3-1 算法和数据结构导学
    • 3-2 教你面试时不会忘记的5种手写排序
    • 3-3 手写链表算法
    • 3-4 手写栈和队列面试专项
    • 3-5 课后习题+面试题:用栈和队列实现表达式解析
    • 3-6 迷宫伪代码和8皇后问题源代码
    • 3-7 3-7 树部分源代码
    • 3-8 8皇后问题
    • 3-10 动态规划的课前题目
    • 3-11 总结和课后习题:白板篇-数据结构和算法
    • 4-1 解读:并发编程知识体系
    • 4-2 看看你的基础:Java线程状态之间如何转换?
    • 4-3 CAS和原子操作
    • 4-4 同步器(上篇)——面试官问synchronized本质是什么?
    • 4-5 同步器(中)——AbstractQueuedSynchronizer
    • 4-6 面试官:说6个Java的同步器?
    • 4-7 面试官出难题:并发环境下单例怎么写性能最高
    • 4-8 面试官:LinkedBlockingDeque和SynchronousQueue工作原理一样吗?
    • 4-9 面试要点:volatile的简短补充
    • 4-10 给面试官讲讲无锁编程(Lock-Free Programming)
    • 4-11 高阶并发编程Coding训练:N种优化哲学家就餐问题的方法
    • 4-12 并发基础篇:总结和思考题
      • [](#进程和线程)进程和线程
      • [](#cas和原子操作)CAS和原子操作
      • [](#同步器)同步器
    • 4-13 并发部分的通关Boss: 生成、发放大量红包并控制资金流速
  • LeetCode

  • 面试
  • 笑傲Java面试
pursuewind
2021-12-13
目录

4-12 并发基础篇:总结和思考题

# 并发基础篇:总结和思考题

# 进程和线程

Java线程和操作系统线程是1:1的关系。进程是应用程序的执行副本,是操作系统分配资源的最小单位。但是操作系统的计算资源是直接分配给线程的,线程是执行程序的最小单位。注意:只有内核线程才是真的具有执行能力的线程。

思考题:说说Java的线程都有哪些状态?

思考题:说说Java有协程吗?

# CAS和原子操作

被问到CAS操作,一定要给出直指本质的回答。我一直强调直指本质,就是用简短的话说清楚它是做什么用的。如果是我,我可能会说,CAS是Java并发编程的基石,它是最基本的原子操作。CAS结构下,可以实现锁、信号量、CAS LOOP构造进步(区别于自旋锁见,并发高级篇Lock Free数据结构部分。)——这些都是最基本并发元语。

并发有3个重要问题要处理:原子性、可见性、有序性。CAS解决原子性,volatile解决可见性,happens-before原则保证有序性。

思考题:自旋锁是不是CAS LOOP ?反之呢?

# 同步器

同步器的内容特别的多,数据结构也多。

如果被问synchrnoized关键字,那就要提到Monitor。最好提到它的别名——intrinsic lock(内部所),提到用C++实现。而AQS走了另一条路径,是Java语言下给实现同步器的人的编程框架。假使没有AQS,大家就要会用LockSuppot、UnSafe这些底层类库。

如果被问到,AQS内部,可以结合无锁编程一起讨论一个Lock Free数据结构的实现。还有一种情况是被问到同步器,那就要准确说出场景。

思考题:什么场景下用CyclicBarrier?

所有的题目,可以先在答疑区留言,我会及时回复部分朋友的讨论。

Last Updated: 2023/01/30, 11:01:00
4-11 高阶并发编程Coding训练:N种优化哲学家就餐问题的方法
4-13 并发部分的通关Boss: 生成、发放大量红包并控制资金流速

← 4-11 高阶并发编程Coding训练:N种优化哲学家就餐问题的方法 4-13 并发部分的通关Boss: 生成、发放大量红包并控制资金流速→

Theme by Vdoing | Copyright © 2019-2023 pursue-wind | 粤ICP备2022093130号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
  • 飙升榜
  • 新歌榜
  • 云音乐民谣榜
  • 美国Billboard榜
  • UK排行榜周榜
  • 网络DJ