文章 2018-08-11 来自:开发者社区

多线程并发相关的几个重要基础知识点解析

问:volatile 变量和 atomic 变量有什么不同?   答:volatile 变量和 atomic 变量看起来很像,但功能却不一样。 volatile 变量可以确保先行关系,即写操作会发生在后续的读操作之前, 但它并不能保证原子性,也就是说其可以保证变量的可见性与有序性,无法保证原子性。例如用 volatile 修饰 count 变量,则 count++ 操作就不是原子性的。 ...

文章 2018-06-21 来自:开发者社区

HashMap多线程并发问题分析

多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这个方法上了,重启程序后问题消失。但是过段时间又会来。而且,这个问题在测试环境里可....

文章 2018-06-17 来自:开发者社区

浅谈OceanBase的多线程并发日志回放

OceanBase选择了强一致性,主UpdateServer往备UpdateServer同步操作日志,如果同步成功,主UpdateServer操作本地后返回客户端更新成功,否则,主UpdateServer会把备UpdateServer从同步列表中剔除。另外,剔除备UpdateServer 之前需要通知RootServer,从而防止RootServer将不一致的备UpdateServer 选为主U....

文章 2018-06-16 来自:开发者社区

MySQL多线程并发调优

前言 学习MySQL数据库技术,一个非常重要的技能就是性能调优。通常情况下,都是自下而上的调优方法,主要包括运行环境、配置参数、SQL性能和系统架构设计调优等。 本文从多线程并发的角度进行的思考,简单描述MySQL并发参数及其调优。 MySQL并发模型 架构 Innodb用自己的线程调度机制来控制线程如何进入innodb内核工作,并执行相关的操作。 当一个线程需要进入到Innodb存储引擎...

MySQL多线程并发调优
文章 2018-04-28 来自:开发者社区

更高效地提高redis client多线程操作的并发吞吐设计

Redis是一个非常高效的基于内存的NOSQL数据库,它提供非常高效的数据读写效能.在实际应用中往往是带宽和CLIENT库读写损耗过高导致无法更好地发挥出Redis更出色的能力.下面结合一些redis本身的特性和一些client操作上的改变来提高整个redis操作的交通.         上图是反映平常操作redis的情况,每个线程都独立...

更高效地提高redis client多线程操作的并发吞吐设计
文章 2018-04-09 来自:开发者社区

多线程之并发工具类(七)

“工欲善其事必先利其器”,有了这些并发工具,多线程控制变得So easy。 与文无关 JDK中已经给我们内置了很多并发工具,都属于应用类型,知道具体如何使用就好,主要讲以下几个类: CountDownLatch CyclicBarrier Semaphore LockSupport BlockingQueue 这次的几个案例都需要实际运行,看运行效果才明白怎么回事,代码可以直接复...

文章 2018-04-06 来自:开发者社区

多线程之并发基础(四)

Java多线程虽然知识点众多,但抓住了基础,也不难解决。 接着上一篇并发基础,再说一些额外的知识点。上篇文章我们说了线程的状态,还有线程的一些属性。这次我们再说一些Thread类的用法,再说下线程组的概念。 与文无关 线程的操作 这里说下线程的一些其它操作。 中断 在Java中,线程中断是一种重要的线程协作机制。中断不会使程序立刻退出,而是给线程发送一个通知,告诉目标线程,有人希望你...

文章 2018-04-06 来自:开发者社区

多线程之并发基础(三)

线程是轻量级的进程,进程可以说是线程的容器。线程是程序执行的最小单位。使用多线程而不是使用多进程进行并发程序的设计,因为线程的切换和调度成本远远小于进程。 与文无关 本文知识点目录: 线程的状态 线程的常见操作 Daemon线程 线程优先级 wait与notify 线程的状态 在Java程序中,线程有如下状态 NEW(新建): 新的线程刚刚创建,还没有启动。 Runnab...

文章 2018-04-05 来自:开发者社区

控制并发线程数的Semaphore

信号量(Semaphore) 一个同步对象,用于保持在0至指定最大值之间的一个计数值。 当线程完成一次对该semaphore对象的等待(wait)时,该计数值减一 当线程完成一次对semaphore对象的释放(release)时,计数值加一 当计数值为0,则线程等待该semaphore对象不再能成功直至该semaphore对象变成signaled状态。 semaphore对象的计数值大于...

文章 2017-12-29 来自:开发者社区

再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化

原文:再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化 继上篇文章《绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来》发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万级数据库表在高并发访问下如何进行测试访问 这篇文章的知识点如下: 1.如何自写几十行代码就能模拟测试高并发下访问千万级数据库表 2.比较高并发下(200次/秒,....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐