首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
廿三段
更多收藏集
微信扫码分享
微信
新浪微博
QQ
16篇文章 · 0订阅
Thread启动线程的start方法能执行多次吗?
我们知道在Java里线程是通过java.lang.Thread类来实现的。一般我们创建无返回值的线程会用下面两个方法: 线程启动会通过调用start方法来启动线程而不能直接调用run方法。 其实答案就是源码里,在这之前我们要了解线程的状态有哪些。 线程从创建到死亡是会经历多个状…
Java并发——深入 ThreadPoolExecutor 任务执行原理
第二个构造器使用了 Executors 工具类的 callable() 方法来把 Runnable 适配成 Callable。典型的 适配器模式。 从上述代码分析可以看出,有很多书上在分析线程池的执行原理是有问题的。 addWorker() 方法在创建工作线程执行任务之前,需要…
如何使用ThreadLocal避免线程安全问题?
这篇文章是关于ThreadLocal的第二篇文章。 在上一篇文章,Yasin给大家介绍了什么是ThreadLocal,以及ThreadLocal的基本原理。 那在实际工作中,ThreadLocal一般用来做什么呢?今天我们以一个简单的应用场景为例,给大家介绍如何用ThreadL…
介绍几种常见的分布式锁写法
大家好,我是jack xu,今天跟大家聊一聊分布式锁。首先说下什么是分布式锁,当我们在进行下订单减库存,抢票,选课,抢红包这些业务场景时,如果在此处没有锁的控制,会导致很严重的问题。学过多线程的小伙们知道,为了防止多个线程同时执行同一段代码,我们可以用 synchronized…
一篇文章带你完全了解JAVA线程池,再也不用担心被面试官问了
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,我们的程序最终都是由线程进行运作。在Java中,创建和销毁线程的动作是很消耗资源的,因此就出现了所谓“池化资源”技术。线程池是池化资源技术的一个应用,所谓线程池,顾名思义就是预…
Java并发——阻塞队列原理解析
在前文中非阻塞队列之ConcurrentLinkedQueue源码解析中,深度解析了非阻塞队列的源码。本篇内容将对于阻塞队列的原理、4中处理方式以及7中阻塞队列进行详细解析。 首先,再一次申明,队列必须是线程安全的,否则将毫无意义。阻塞队列最大的特征就是提供两种阻塞操作: 阻塞…
说一说你对synchronized锁的理解?
synchronized锁的原理也是大厂面试中经常会涉及的问题,本文主要通过对以下问题进行分析讲解,来帮助大家理解synchronized锁的原理。 synchronized的英文意思就是同步的意思,就是可以让synchronized修饰的方法,代码块,每次只能有一个线程在执行…
面试美团,面试官突然问我 Java “锁” ,我哭了
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分…
并发容器与并发控制 - JUC(三)
很简单,别想太多,就是因为性能不好。 look, look, 这个synchronized是直接修饰在方法上的,如果你上下翻翻,就可以发现基本上这个类的所有方法都是synchronized修饰的。 Hashtable也是如此。 同时扩容时,只会保留一个扩容的数组。 多线程同时扩…
Java并发——非阻塞队列之ConcurrentLinkedQueue源码解析
在Java并发体系中,很多并发场景都离不开队列。比如Java中的定时任务框架、线程池框架、MQ等。本篇文章将记录我的队列学习之旅中的无阻塞队列源码学习。 首先,队列必须是线程安全的,否则,在并发场编程中,就失去了使用队列的意义了。队列实现线程安全的方式有两种:非阻塞队列和阻塞队…