首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
java多线程
码中悍刀行
创建于2021-08-12
订阅专栏
java多线程
暂无订阅
共17篇文章
创建于2021-08-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
内卷老员工之线程安全与共享资源
由多个线程同时调用时,仍然是安全的代码为线程安全。由此可知,线程安全不包含竞争条件。竞争条件仅在多个资源共享修改时才会发生,因此了解那些资源在java中是共享的十分必要。
竞争条件和临界区
临界区指的是多个线程执行的代码块,由于执行顺序不同会导致结果不同的代码块。当多个线程执行临界区的代码导致结果差异时,则将其称为临界区包含竞争条件。
内卷老员工之单线程并发四
大多数长时间运行的应用程序应该在某种循环中执行,其中主应用程序等待来自外部的输入,并处理该输入后返回等待。这种线程循环服务于各种应用程序,有时是隐藏的,而有时是可见的。
内卷老员工之单线程并发三
单线程并发存在优势的同时也存在一些挑战,下面会对存在的挑战进行一些探讨。在不是去简单性的前提下解决这些挑战,则是单线程并发设计的关键。
内卷老员工之单线程并发二
经典多线程并发架构的替代方案是采用单线程或同线程的设计架构。而在单线程的架构中,必须要手动进行任务切换。单线程架构可以扩展为多个互不影响的单线程系统,线程之间不进行数据、资源共享,这可以称为同线程架构
内卷老员工之并发与并行
并发性与并行性主要是多线程的概念。表面上看起来二者概念类似,实际上是代表不同的内容。本文主要对该内容进行一定探讨。
内卷老员工之同线程系统
同线程可以认为是一种并发模型,从一个单线程系统扩展到n个单线程系统,结果是n个单线程系统并行运行。同线程系统不是单纯的单线程系统,因为它包含多个线程。但是每个线程都像单线程系统一样独立运行。
内卷老员工之并发模型-流水线模型
流水线并发模型,根据平台与社区的不同,也被称为响应式系统并发模型或时间驱动并发模型。流水线并发模型中,工作者的组织方式类似于工厂中的工人,每个工人只负责工作的一部分,当任务完成后,转交给下一个工人。
内卷老员工之并发模型-并行工作者
本文将主要探讨关于并行工作者并发模型的内容。并行工作者并发模型,传入的工作将分配给不同的工人,下面是并行工作者模型的流程图。
内卷老员工之线程饥饿与公平
如果一个线程因为其他线程将cpu时间全部占用而无法被授予cpu时间,则成为“饥饿”。饥饿的解决方案为“公平”--为所有线程提供平等的执行机会。
内卷老员工之死锁与死锁的预防
死锁是指两个或多个线程被阻塞,等待获得死锁状态下一些其他线程锁持有的锁。当多线程需要获取相同的锁,但以不同顺序进行获取时,则可能会出现死锁。
内卷老员工之线程通信
所谓线程通信,他的目的是为了使线程之间能够相互发送信号进行通信,同时线程信号能等待来自其他信号的状态。
内卷老员工之threadLocal
java ThreadLocal类相当于提供了一种线程安全的简单方法,以此创建的内容只能在线程中存储和读取,其他线程无法访问到当前线程的变量。
内卷老员工之volatile关键字
java使用关键字volatile将java变量标记为“主内存存取”,可以理解为每次读取都从计算机主存而不是cpu缓存,每次写入都是写入主存而不仅仅是cpu缓存。
内卷老员工之synchronized锁
java synchronized提供了一套同步多线程访问对象的机制。java8之前锁的方式比较重度,java8之后对关键字锁进行了轻量化升级。
内卷老员工之java内存模型的happens-before原则
happens-before原则是指线程本地内存与主内存的同步关系,只有满足happens-before原则的情况下,线程内存发生变化时,才会将数据同步到主内存,使得其他线程对该数据变化可见。
内卷老员工之java内存模型
本文主要介绍了java内存模型及与之相关的硬件内存架构,同时对java内存模型与硬件内存模型之间的关系进行了简单解释。