腾讯java社招面试流程,附大厂真题面经
拼多多一面首先自我介绍参加过哪些项目并发编程三要素?实现可见性的方法有哪些?多线程的价值?创建线程的三种方式的对比?画出线程的状态流转图常用的并发工具类有哪些?CyclicBarrier和CountDownLatch的区别CAS的问题:1、CAS容易造成ABA问题2、不能保证代码块的原子性3、CAS造成CPU利用率增加ReadWriteL
Wesley13 Wesley13
3年前
java ThreadLocal
ThreadLocal是什么定义:提供线程局部变量;一个线程局部变量在多个线程中,分别有独立的值(副本)特点:简单(开箱即用)、快速(无额外开销)、安全(线程安全)场景:多线程场景(资源持有、线程一致性、并发计算、线程安全等场景)ThreadLocal基本API 构
Wesley13 Wesley13
3年前
Java多线程并发中 CAS 的使用与理解
一、CAS(CompareAndSwap):  CAS(CompareAndSwap),即比较并交换CAS(V,E,N)。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——要更新的变量(V)、预期原值(E)和新值(N)。核心算法是如果V值等于E值,则将V的值设为N。若V值和E值不同,则说明已经有其他线
Wesley13 Wesley13
3年前
Java并发编程:多线程如何实现阻塞与唤醒
线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。Java为我们提供了多种API来对线程进行阻塞和唤醒操作,比如suspend与resume、sleep、wait与notify以及park与unpark等等。!(
Stella981 Stella981
3年前
AvctiveMQ和RabbitMQ的区别
ActiveMQ:传统的消息队列,使用Java语言编写。基于JMS(JavaMessageService),采用多线程并发,资源消耗比较大。支持P2P和发布订阅两种模式。RabbitMQ:是使用Erlang语言开发的开源消息队列系统。基于AMQP协议来实现的。AMQP的主要特征是面向消息、队列、路由(
Stella981 Stella981
3年前
Python 的多线程是鸡肋?
!(https://oscimg.oschina.net/oscnet/80aea83e4650dc413722553728417eae7de.jpg)“唉,还没毕业就受到甲方的支配,等以后进了公司可咋整啊。”小白嘴里这么吐槽,但心理上还是不敢怠慢,只能恋恋不舍地关掉眼前的游戏,打开了Python代码思考了起来。“现在的程序是单线程的,那就用
Wesley13 Wesley13
3年前
Java面试知识点解析(二)—高并发编程篇
!(https://oscimg.oschina.net/oscnet/ae743dda50d44f27ac659458c955f116.png)一、高并发编程基础知识■1)多线程和单线程的区别和联系?答:1.在单核CPU中,将CPU分为很小的时间片,在每一时
Wesley13 Wesley13
3年前
JUC——JUC开发简介(一)
前言JUC是Java5.0开始提供的一组专门实现多线程并发处理的开发框架,利用JUC开发架构可以有效的解决实际线程项目开发之中出现的死锁、阻塞、资源访问与公平机制。此笔记主要记录java.util.concurrent开发包之中的各个核心组成类的使用、操作原理分析,并且通过具体的实际代码对多线程的开发实际环境进行原理分析,同时方便自己随时复习掌
Wesley13 Wesley13
3年前
Java 并发编程:多线程如何实现阻塞与唤醒
线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。Java为我们提供了多种API来对线程进行阻塞和唤醒操作,比如suspend与resume、sleep、wait与notify以及park与unpark等等。!(
javalover123 javalover123
2年前
Testng和Junit5多线程并发测试对比
最近测试一个开源项目,发现生成的全局id有重复,也没有单元测试,就准备贡献个PR。想到多线程并发测试,根据经验,第一想法是用Testng,后面看了下Junit5也有实验性支持了,就对比下(以maven为例)