
java
青城山下————
软件攻城狮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高并发系列之五:进程和线程
进程和线程是操作系统的基本概念,抽象且不容易理解计算机的核心是CPU,他承担了所有的计算任务,他就像一个工厂,时刻在运行。假定工厂的电力有限,同一时间只能给一个车间供电,也就是说,当一个车间工作时,其他的车间必须停工,言外之意就是,CPU在一次只能运行一个任务。进程就好比车间,它代表CPU能够处理的单个任务。任意时刻,CPU只能运行一个进程,其他进程处于非运行状态。一个车间里会有很多工人,每个工人就好比是线程,他们共同完成任务,一个进程中可以有多个线程。车间的空间对于工人来说都是共享的,比如每个转载 2020-05-30 17:46:52 · 222 阅读 · 0 评论 -
高并发系列之四:JMM相关的一些概念
JMM:java内存模型并发程序比串行程序复杂的多,其中很重要的一个原因就是并发程序中数据访问的一致性和安全性问题。如何保证在一个线程可以看到正确的数据?这在串行程序中就不是问题,但是在并发程序中,这却成了最重要的一个问题。假如:读取了一个指,a=1,在串行程序中肯定这个a=1,但是如果这个变量是线程共享的数据,那么在并发程序中我们有可能得到的a!=1,可能等于2、3、4、5…JMM关键的技术点是围绕着多线程的原子性、可见性、有序性来建立的。思维导图原子性原子性是指操作是不可分的,要么全部一起原创 2020-05-30 15:30:19 · 177 阅读 · 0 评论 -
高并发系列之三:有关并行的两个重要定律
问题:是不是说我们的项目中,cpu的核数越多,咱们的代码并行能力就越强呢?上面两个定律给出了结论:Amdahl强调:当串行换比例一定时,加速比是有上限的,不管你堆叠多少个CPU参与计算,都不能突破这个上限。Gustafson定律关系的是:如果可被并行化的代码所占比例足够大,那么加速比就能随着CPU的数量线性增长。总的来说,提升性能的方法:想办法提升系统并行的比例,同时增加CPU数量。...原创 2020-05-06 17:36:19 · 274 阅读 · 0 评论 -
高并发系列之二:并发级别
一、思维导图二、详细说明阻塞当一个线程进入临界区(公共资源)之后,其他的线程必须等待这个线程执行完毕之后才能进入临界区。无饥饿线程排队,不管优先级大小,先来的先进入,这样就不会产生饥饿等待资源,即为公平锁,非公平锁就是,线程有优先级,优先级会影响线程的执行顺序,会导致饥饿锁额产生无障碍共享资源不加锁,每个线程都可以读写,线程进入后发现检测资源,如果发现资源被修改了,则回滚,重试该操...原创 2020-04-30 11:36:51 · 291 阅读 · 0 评论 -
高并发系列之一:基础概念
一步一个脚印,学习高并发啦!原创 2020-04-30 10:38:12 · 236 阅读 · 2 评论 -
完全搞懂 java中的“==”和“equals()”方法
一、" == "对于基本类型来说,比较的是值 对于引用类型来说,比较的是他们的引用注:这里值得引用是什么呢,在创建引用类型的时候,会把引用存到栈中,而真正的值存储在堆中,而引用存储了值在堆中的地址 String x = "abc"; String y = "abc"; String z = new String("abc"); ...原创 2019-08-15 16:49:51 · 296 阅读 · 0 评论 -
关于解决系统接口幂等性问题的解决
什么是幂等性?对于同一个业务操作,不管调用多少次,在数据库的存储,或者得到的结果应该是一样的。幂等性的设计思想以支付宝或者微信的充值为例,在我们支付完之后,支付宝、微信会给我们回调,来通知我们的系统支付成功,而在这之前,我们系统中已经存储了这条订单信息,我们要做的事就是需要在支付宝或者微信给我们回调之后,不管回调多少次,我们接口应该针对于同一个订单得到的结果是一样的。针对于我们系统...原创 2019-09-22 15:29:31 · 964 阅读 · 0 评论