程序设计

Synchronized内容总结(三)

前面两部分谈到多线程对内部锁的优化,以及代码中对锁的优化。是从减少竞态的角度来优化程序的。如果从提高线程执行效率,来对多线程程序进行优化,自然让人联想到了线程池技术。 基本概念与原理 Java 线程池会...

Synchornized优化总结(二)

前面讲了 Java 系统是如何针对内部锁进行优化的。如果说内部锁的优化是 Java 系统自身完成的话,那么接下来的优化就需要通过代码实现了。 锁的开销主要是在争用锁上,当多线程对共享资源进行访问时,会出现线...

Synchronized优化总结(一)

当使用 Java 多线程访问共享资源的时候,会出现竞态的现象。即随着时间的变化,多线程“写”共享资源的最终结果会有所不同。 为了解决这个问题,让多线程“写”资源的时候有先后顺序,引入了锁的概念。每次一个线...

Flutter开发平台搭建

基础环境 windows 10 java 1.8 Git https://flutterchina.club/get-started/install/ https://plugins.jetbrains.com 搭建步骤 1.设置国内URL环境变量 PUB_HOSTED_URL=https://pub.flutter-io.cn...

微服务架构中分布式事务实现方案如何取舍

提起微服务架构,不可避免的两个话题就是服务治理和分布式事务。数据库和业务模块的垂直拆分为我们带来了系统性能、稳定性和开发效率的提升的同时也引入了一些更复杂的问题,例如在数据一致性问题上,我们不再能...

为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?

一个问题? InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机...

如何写出让同事无法维护的代码

对,你没看错,本文就是教你怎么写出让同事无法维护的代码,保证不会被打死。如果建筑师盖房子就像程序员写程序一样,那么,第一只到来的啄木鸟就能毁掉我们的文明。——Gerald Weinberg 01 程序命名 容易输...

git pull报错

在git pull时,偶尔会遇到一个报错: Unlink of file '.git/objects/pack/old-07de1ebcd020b809a421fceb567977352258b859.idx' failed. Should I try again? (y/n) 不管是y还是n都会不断地出现这种提示信息。...

Spring Websocket实现向指定的用户发送消息

概述 本文我们介绍通过Spring websocket实现向特定的用户发送消息。 本文的内容如下: 1. 首先实现简单的登录功能,这里向特定用户发送消息的必要条件 2. 用户登录系统后,才可以登录websocket,并重写MyPr...

Java性能优化的50个细节

作者丨Java后端开发 https://www.toutiao.com/i6595499804082569742/ 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽...