摘要: Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序。Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源。这篇文章学习 goroutine 的应用及其调度实现。 一、Go语言对并发的支持 使用goroutine编程 使用 阅读全文
posted @ 2018-08-10 18:25 割肉机 阅读(2206) 评论(0) 推荐(0) 编辑
摘要: CyclicBarrier是多线程中一个重要的类,主要用于线程组内部之间的线程的相互等待问题。 1.CyclicBarrier的工作原理 CyclicBarrier大致是可循环利用的屏障,顾名思义,这个名字也将这个类的特点给明确地表示出来了。首先,便是可重复利用,说明该类创建的对象可以复用;其次,屏 阅读全文
posted @ 2018-08-10 18:20 割肉机 阅读(2115) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch的概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量 阅读全文
posted @ 2018-08-10 18:18 割肉机 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 概述 CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点。与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。 CyclicBarrier支持一个可选的Runnable命令,在 阅读全文
posted @ 2018-08-10 18:18 割肉机 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 等待某一个指定的事件发生后,才让多个等待的线程继续执行,以下是我能想到的几个方法,欢迎讨论、指正。 1.闭锁CountDownLatch 闭锁是典型的等待事件发生的同步工具类,将闭锁的初始值设置1,所有线程调用await方法等待,当事件发生时调用countDown将闭锁值减为0,则所有await等待 阅读全文
posted @ 2018-08-10 18:16 割肉机 阅读(1543) 评论(0) 推荐(0) 编辑
摘要: synchronized 修饰在 static方法和非static方法的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法。也可以synchronized来修饰方法里面的一个语句块。那么,在static方法和非static方法前面加synch 阅读全文
posted @ 2018-08-10 17:51 割肉机 阅读(10407) 评论(0) 推荐(0) 编辑
摘要: 1、Semaphore概念 Semaphore是Java1.5之后提供的一种同步工具,Semaphore可以维护访问自身线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而release() 释放一个许可。 Se 阅读全文
posted @ 2018-08-10 17:50 割肉机 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 鲍永成 京东基础架构部技术总监, DevOps 标准核心编写专家 前言 JDOS 就是京东数据中心操作系统,随着数据中心规模不断的扩大,我们需要对数据中心做综合的考虑。所以一开始就先说数据中心的层面,大家知道数据中心里面有服务器、网络、基础软件,还有就是部署业务系统。 随着技术的发展,有一些集群管理 阅读全文
posted @ 2018-08-10 14:34 割肉机 阅读(2664) 评论(0) 推荐(0) 编辑
摘要: 冯嘉 作者 | 冯嘉 近日,Apache RocketMQ 4.3 版本宣布发布,此次发布不仅包括提升性能,减少内存使用等原有特性增强,还修复了部分社区提出的若干问题,更重要的是该版本开源了社区最为关心的分布式事务消息,而且实现了对外部组件的零依赖。接下来,本文将详细探秘 RocketMQ 事务消息 阅读全文
posted @ 2018-08-10 14:01 割肉机 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。 1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型 阅读全文
posted @ 2018-08-10 13:24 割肉机 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 前言 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。 阅读全文
posted @ 2018-08-10 10:31 割肉机 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 附录:https://www.cnblogs.com/lanweijava/p/9435138.html 在再有人问你Java内存模型是什么,就把这篇文章发给他中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchroni 阅读全文
posted @ 2018-08-10 10:24 割肉机 阅读(549) 评论(0) 推荐(0) 编辑
摘要: 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management Syst 阅读全文
posted @ 2018-08-10 09:34 割肉机 阅读(521) 评论(0) 推荐(0) 编辑
摘要: manong 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化。 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级以下,字符串为主的表在 五百万以下是没有太大问题的。而事实上很多时 阅读全文
posted @ 2018-08-10 09:20 割肉机 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 关于系统性能优化涉及的内容非常多,我会分几篇文章来分享,这次分享下定位系统层面问题的常用方法。 系统性能定义 Throughout 吞吐量 (系统每秒钟可以处理的请求数) Latency 延迟 (系统处理一个请求的延迟) Usage 资源利用率 吞吐量和延迟的关系 吞吐量越高,延迟会越大。因为请求量 阅读全文
posted @ 2018-08-10 09:16 割肉机 阅读(537) 评论(0) 推荐(0) 编辑