java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁

origin:https://blog.csdn.net/zqz_zqz/article/details/70233767/之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchroni...

2018-06-25 16:38:20

阅读数 54

评论数 0

JVM类加载机制详解(二)类加载器与双亲委派模型

在上一篇JVM类加载机制详解(一)JVM类加载过程中说到,类加载机制的第一个阶段加载做的工作有:1、通过一个类的全限定名(包名与类名)来获取定义此类的二进制字节流(Class文件)。而获取的方式,可以通过jar包、war包、网络中获取、JSP文件生成等方式。2、将这个字节流所代表的静态存储结构转化...

2018-06-12 11:31:59

阅读数 41

评论数 0

JVM类加载机制详解(一)JVM类加载过程

首先Throws(抛出)几个自己学习过程中一直疑惑的问题:1、什么是类加载?什么时候进行类加载?2、什么是类初始化?什么时候进行类初始化?3、什么时候会为变量分配内存?4、什么时候会为变量赋默认初值?什么时候会为变量赋程序设定的初值?5、类加载器是什么?6、如何编写一个自定义的类加载器?首先,在代...

2018-06-12 08:56:51

阅读数 41

评论数 0

线程池的五种状态

线程池的5种状态:Running、ShutDown、Stop、Tidying、Terminated。线程池各个状态切换框架图:1、RUNNING(1) 状态说明:线程池处在RUNNING状态时,能够接收新任务,以及对已添加的任务进行处理。 (02) 状态切换:线程池的初始化状态是RUNNING。换...

2018-06-11 19:36:06

阅读数 3966

评论数 5

线程池原理

转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻...

2018-06-07 19:50:07

阅读数 52

评论数 0

什么时候手动创建线程而不使用线程池

1、需要自定义线程的优先级,线程池中线程总是Normal2、需要一个前台线程,线程池中线程是后台线程     非UI线程最好使用线程池创建为后台线程,常常关闭一个软件之后,仍然占有内存,就是由于创建了多个前台线程,程序关闭的时候,还有其他前台线程没有关闭。3、需要手动终止线程,线程池不具有这种功能...

2018-06-07 17:51:17

阅读数 778

评论数 0

终止线程的三种方法

 有三种方法可以使终止线程。    1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。    2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。    3.  使用interrupt方法中断线...

2018-06-07 14:12:20

阅读数 1928

评论数 0

JUC

概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类转载...

2018-06-06 08:11:49

阅读数 1495

评论数 1

redis去重方案优化

tpn(taobao push notification)在使用redis计算消息未读数的过程中,遇到了一系列的问题,下面把这个过程整理了一下,也让大家了解这个纠结的过程,供大家以后使用redis或者做类似的功能时进行参考     redis在tpn里面主要是用于计算移动千牛(Android、IO...

2018-06-05 15:48:18

阅读数 2088

评论数 0

java实现 远程调用例子 rpc

服务端 :HelloServicepublic interface HelloService { public String hello(String name); }HelloServiceImplpublic class HelloServiceImpl implements He...

2018-06-02 17:16:50

阅读数 496

评论数 0

深究Java中的RMI底层原理

前言:随着一个系统被用户认可,业务量、请求量不断上升,那么单机系统必然就无法满足了,于是系统就慢慢走向分布式了,随之而来的是系统之间“沟通”的障碍。一般来说,解决系统之间的通信可以有两种方式:即远程调用和消息。RMI(Remote Method Invocation)就是远程调用的一种方式,也是这...

2018-06-02 14:59:15

阅读数 53

评论数 0

Java RMI与RPC的区别

 一:RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。 一次RPC调用的过程大概有10步:  1.执行客户端调用语句,传送参数  2.调用本地系统发送网络消息  3.消息传送到远程主机  4.服务...

2018-06-02 14:14:04

阅读数 653

评论数 0

大家都在谈的SOA和微服务 你真的理解吗

微服务是什么?微服务是一种架构设计模式。在微服务架构中,业务逻辑被拆分成一系列小而松散耦合的分布式组件,共同构成了较大的应用。每个组件都被称为微服务,而每个微服务都在整体架构中执行着单独的任务,或负责单独的功能。每个微服务可能会被一个或多个其他微服务调用,以执行较大应用需要完成的具体任务;系统还为...

2018-06-02 10:56:27

阅读数 1897

评论数 0

大数据面试题-两个大文件中找出共同记录

1.题目描述给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?2.思考过程(1)首先我们最常想到的方法是读取文件a,建立哈希表(为什么要建立hash表?因为方便后面的查找),然后再读取文件b,遍历文件b中每个url,对于每个遍历,我们...

2018-05-31 16:57:16

阅读数 1284

评论数 0

gRPC HelloWorld java版

1. 创建一个maven项目2. 加入依赖3. 编写proto文件4. 编写服务端文件, 和客户端文件package org; import io.grpc.Server; import io.grpc.ServerBuilder; import io.grpc.examples.hellowo...

2018-05-30 15:54:37

阅读数 298

评论数 0

网络七层协议的通俗理解

 OSI七层模式简单通俗理解 这个模型学了好多次,总是记不住。今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记。本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人。总体来说,OSI模型是从底层往上层发展出来的。 这个模型推出的最开始,是是因为美国人有两台机器之间进行通信的需...

2018-05-30 10:24:14

阅读数 389

评论数 1

TOMCAT原理详解及请求过程

Tomcat:  Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。Tomcat目录:tomcat  |---bin:存放启动和关闭tomcat脚本  |---conf:存放不同...

2018-05-29 09:40:40

阅读数 68

评论数 0

volatile详解

一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)...

2018-05-15 20:15:24

阅读数 23

评论数 0

单例模式

作者:孤独烟,来自:http://rjzheng.cnblogs.com/其实写这篇文章之前,我犹豫了一下,毕竟单例大家都知道,写这么一篇文章会不会让人觉得老掉牙。后来想想,就当一种记录吧。先来一副漫画吧,如下图所示ok,我们回顾下小灰的遭遇,上述漫画所提出的那些问题主要有以下三点:为什么静态内部...

2018-05-14 16:06:24

阅读数 25

评论数 0

一次springboot2 + swagger2-ui 404报错记录

之前用Springboot1一直没问题,升级之后 swagger不能用了。如果 /v2/api-docs 可以访问,swagger-ui不能访问,那基本是静态资源映射问题。

2018-05-06 17:48:50

阅读数 2496

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭