链滴
社区愿景和功能特性
优雅的 Markdown 所见即所得编辑
快捷键交互
随时自由编辑分享内容
支持注销账号来去自由
分布式社区网络
开放 API
产品
Symphony 社区系统(Java)
Solo 博客系统(Java)
Vditor 编辑器(TypeScript)
思源笔记(Electron、Go)
Pipe 博客平台(Vue、Go)
发展计划表
发展简史
榜单
GitHub 仓库排行
帖子打赏排行
Solo 博客端排行
积分排行
活跃度排行
贡献排行
本站基于开源项目 Sym
编程代码问答
登录
注册
首页
>
标签
并发
75
引用 •
73
回帖 •
1
关注 •
472
浏览
参与讨论
关注
关注
分享
HashTable
2
引用
秒杀
8
引用 •
3
回帖 •
1
关注
并发编程
2
引用 •
6
回帖
面试
面试造航母,上班拧螺丝。多面试,少加班。
325
引用 •
1395
回帖 •
2
关注
线程
123
引用 •
111
回帖 •
3
关注
CAS
13
引用 •
21
回帖
算法
437
引用 •
254
回帖 •
24
关注
默认
热议
好评
优选
最近回帖
关注者
查看所有标签
并发环境下的余额扣减
集群环境,单数据库环境,出现了余额为负的情况。。。
837
7 年前
并发原理篇:锁
并发原理篇:锁 前言 最近在上操作系统的课,刚讲完了进程篇,但老师只是给我们勾画出进程的轮廓,所以在此总结进程并发的相关内容,希望勾勒出她貌美的容貌。 这次内容主要分成三个模块去讲述 (也可以看目录哈) 并发面临的问题 如何解决问题——锁 锁的实现原理 何为进程,何为线程 在学习 OS 的时候,提到最多的一个概念便是进 ..
1.3K
8 年前
关于 tomcat 线程池调优的问题
一个小直播平台,随着用户增加,性能出现了问题,开始是消息延迟,接的是腾讯的 im,做过测试,10000 条消息可能会有 20 条会有 100 多秒的延迟才有响应,我们所有的消息是放在 spring 的异步线程池做处理,当时 spring 线程池的数量设置的最大数量是 200,队列是 1 万,策略是队列不足主线程跑,但是 ..
30
5 年前
并发编程——可见性
[链接] 这个有人看了吗?关于 volatile、并发安全 ☞ 可见性的文章 只要我修改一段代码,加不加 volatile,其结果都是一样的,是为什么? while (!getStop()) { i++; sleep(); // 休眠1s } 我能给出的观点是: 由于频繁访问 stop ,所以 CPU 会把该变量一直放 ..
547
8 年前
问题:Go 语言是否有的类似 Tomcat Netty 的开源项目
Go 语言中是否有 Netty 这样的开源项目呢? 如果没有,那么对于 Go 语言想实现一个 Socket 上的 长连接 服务器,我这样的思路是否正确? 对于每一个 connection ,都开启两个协程,一个读协程,一个写协程 可是这样子有一个疑问是:如果有 10W 个客户,则意味着会同时有 20W+ 的协程。这样子 ..
6.3K
7 年前
没想到,这么简单的线程池用法,深藏这么多坑
[图片] 又又又踩坑了 生产有个对账系统,每天需要从渠道端下载对账文件,然后开始日终对账。这个系统已经运行了很久,前两天突然收到短信预警,没有获取渠道端对账文件。 ps:对账系统详细实现方式:对账系统设计与实现 本以为又是渠道端搞事情,上去一排查才发现,所有下载任务都被阻塞了。再进一步排查源码,才发现自己一直用错了线程 ..
454
4 年前
求助,java join 的原理
Thread 类中,join 方法的实现: public final synchronized void join(long millis) throws InterruptedException { long base = System.currentTimeMillis(); long now = 0; if (m ..
551
7 年前
求 Java 好书推荐
希望大家可以将自己在学习过程中看到的好书分享出来,不光是 JAVA 知识,解决特定问题方面的也都可以啊,如做搜索,分布式,高并发,数据库优化等
411
8 年前
寻找高并发处理最优方案
186
4 年前
CAS 与 Auomic 原子类
CAS 与 Auomic 原子类 什么是原子操作? '原子操作(atomic operation)是不需要 synchronized',这是多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。 Ja ..
279
5 年前
【java 并发系列】非阻塞算法
[图片] 引言 我们知道在 java 中,在不止一个线程访问一个互斥变量的时候,所有的线程必须要使用同步,不然的话,可能会发生很多我们意想不到的情况,而我们常用的可能是互斥锁 synchronized,他强制实现线程间的互斥动作。synchronized 保证了程序的安全性,但我们也知道在并发的情况下,它也带来了频繁的 ..
357
4 年前
如何实现秒杀
原作者:驴妈妈旅游网 丁明 一:应用场景及技术挑战假设网站秒杀活动只推出1件商品,会吸引一万人参加活动,也就是说最大请求数是10000。 1,对现有网站业务造成冲击秒杀活动是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有业务造成冲击,严重导致整个网站瘫痪。2, ..
1.1K
6 年前
互联网项目一般压测到多少并发算及格?比如黑客派
D 大以及各路大佬进来水一把嘛
1.4K
6 年前
面试官: 都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
[图片] 使用 Java 阻塞 I/O 模型读取数据,将会导致线程阻塞,线程将会进入休眠,从而让出 CPU 的执行权,直到数据读取完成。这个期间如果使用 jstack 查看线程状态,却可以发现 Java 线程状态是处于 RUNNABLE,这就和上面说的存在矛盾,为什么会这样? 上面的矛盾其实是混淆了操作系统线程状态与 ..
412
5 年前
并发之痛 Thread,Goroutine,Actor
聊这个话题之前,先梳理下两个概念,几乎所有讲并发的文章都要先讲这两个概念: [图片] 并发(concurrency) 并发的关注点在于任务切分。举例来说,你是一个创业公司的 CEO,开始只有你一个人,你一人分饰多角,一会做产品规划,一会写代码,一会见客户,虽然你不能见客户的同时写代码,但由于你切分了任务,分配了时间片, ..
318
6 年前
Thread.join() 的原理分析
[图片] 一、Thread.join()方法的作用 首先,说到 Thread.join()方法,如果我们了解过 java 并发知识的同学可能都知道,我们可以用 Thread.join()方法来控制线程的执行顺序,顾名思义也能知道,join 嘛,加入的意思,也就是让当前正在执行的线程等待,让加入的线程先执行完,然后唤醒当 ..
514
5 年前
从一百个到千万级并发情况下服务端的架构的演进过程
本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径 [图片] 基本概念 在介绍架构之前,为 ..
242
3 年前
上哪里去找一个高并发的需求。。。
如题
250
5 年前
高并发下的跨进程并发控制
什么是并发控制? 在之前的文章里面,聊了一下什么是高并发 https://blog.junxworks.cn/articles/2018/09/23/1537713102856.html,以及自己对高并发的理解,其中也简单的谈到了并发控制这个问题,其实并发控制概念上讲,不难理解,个人觉得并发控制就是在多个请求的环境 ..
610
6 年前
Java 多线程并发第一步
多线程-执行屏障 最近在看 Java 多线程的内容,看到个有意思的[链接],看了多线程部分的一道简单的题。。。 嗯。。。果然是一点都不会。 看了别人的答案和解释,结合百度才算是明白答案。 1114.按序打印(这是原题) 难度:简单 我们提供了一个类: public class Foo { public void one ..
183
5 年前
Java 内存模型及其原理
[图片] 概述 在《'Java 并发知识梳理'》这篇文章中曾说道:在并发领域由于可见性问题、原子性问题、有序性问题,从而会导致并发场景下,结果的不确定性,为了解决可见性和有序性导致的问题,Java 构建出了一套内存模型。因而本文就主要谈一谈 Java 内存模型的设计思路以及其原理。 从三个问题说起 缓存导致可见性问题 ..
158
3 年前
synchronized 的原理及应用
[图片] 概述 在之前的一篇文章《'Java 内存模型及其原理' 》这篇文章中,曾经介绍过 synchronized 关键字的作用,解决的是多个线程之间访问资源的同步性,保证被 synchronized 修饰的代码具有原子性。因而在本篇文章将会深入了解 synchronized 的使用方式以及原理。 使用 synchr ..
177
3 年前
ElasticSearch 实战之千万级 TPS 写入
***1. *** 背景 [图片] 前段时间,为了降低用户使用 ElasticSearch 的存储成本,我们做了数据的冷热分离。为了保持集群磁盘利用率不变,我们减少了热节点数量。ElasticSearch 集群开始出现写入瓶颈,节点产生大量的写入 rejected,大量从 kafka 同步的数据出现写入延迟。我们深入分 ..
597
4 年前
线程池使用与原理
[图片] 概述 在大型项目中,在代码中直接创建线程是不允许的,如果需要使用多线性则必须通过线程池了创建,因而了解线程池的使用规范以及底层实现是非常有必要的。 使用 预想的用法 但说到线程池,我们可能首先会类比连接池这类池化资源,会以为线程池是通过 acquire() 来获取资源,通过 release() 来释放资源,就 ..
165
3 年前
多线程之线程池小纪
[图片] 关于我是线程池 并发总是离不开多线程,多线程的应用能够更好地帮助我们协调利用 CPU、Memory、Net、I/O 等系统资源。频繁的创建、销毁线程会浪费大量的系统资源,增加并发编程的风险。利用线程池可以实现类似主次线程隔离、定时执行、定时执行、周期执行等任务。作用包括: 利用线程池管理并复用线程、控制最大并 ..
135
5 年前
Java 并发编程(五)线程池
[图片] 线程池顶级接口 Executor Executor 接口为线程池的顶级接口,其 executor() 方法接收一个 Runnable 实现类对象,定义了在使用线程池时,如何调用线程中的业务逻辑。 class DirectExecutor implements Executor { public void ..
138
5 年前
Java 并发编程(四)并发容器
[图片] 并发容器的引出: 售票问题 有 N 张火车票,每张票都有一个编号同时有 10 个窗口对外售票,请写一个模拟程序。 实现 1:使用 List-非原子性操作 public class TicketSeller1 { static List tickets = new ArrayList<>(); ..
107
5 年前
Java 并发编程(三)可重入锁 ReentrantLock
[图片] ReentrantLock 的使用 ReentrantLock 可以完全替代 synchronized,提供了一种更灵活的锁. ReenTrantLock 必须手动释放锁,为防止发生异常,必须将同步代码用 try 包裹起来,在 finally 代码块中释放锁. public class T { Reentra ..
161
5 年前
Java 并发编程(二)线程同步
[图片] synchronized 关键字 1、对某个对象加锁 public class T { private int count = 10; private final Object lock = new Object(); public void m() { synchronized (lock) { // 任何 ..
101
5 年前
Java 并发编程(一)多线程基础
[图片] 线程简介 学习多线程之前,我们先要了解几个关于多线程有关的概念。 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可 ..
139
5 年前
进程 Vs 线程、并发 Vs 并行
进程 Vs 线程、并发 Vs 并行 CPU 核心数跟线程数的关系? 对于一个 CPU,线程数 >=核心数 也就是说,一个核心最少可以对应一个线程,但通过超线程技术,一个 CPU 核心可以同时运行俩个线程。 线程数可等同于在某一时刻,CPU 并行执行任务的数量。 进程 Vs 线程 何为进程? 进程是一个具有独立功能 ..
252
5 年前
Java 线程池
线程池 为什么要用线程池 如果有大量的任务需要并发执行,但是每个任务只需要执行很短的时间就执行完成,这样就会频繁的创建-> 销毁线程,这样反而会浪费系统资源。 那么有没有一种办法可以让线程执行完一个任务后,不进行销毁而是转去执行其它未完成的任务,这样就可以实现线程复用,而不用频繁的创建销毁线程,把时间、资源都浪费 ..
118
5 年前