- 博客(10)
- 资源 (5)
- 收藏
- 关注
原创 jps的用法:Java虚拟机进程状况工具
一般现场出问题,服务器上不会有JProfile之类的工具给你分析问题,有的只是jdk自带的东西,所以,很有必要学习一下jdl自带的命令行工具。一开始,老看别人使用这个jps,还以为是Linux自带的呢,类似cd ls之类的。后来才发现这个是jdk的东西,搞Java的竟然不知道这个,哎,真水。JavaVirtual Machine Process Status Tool命令格式:jps [options ] [ hostid ][options] 参数选项:jps 的参数和对应说明 -q.
2020-05-29 11:39:02 799
原创 Java并发框架中的线程池 thread pool 为啥不是直接创建 maximumPoolSize 个线程之后,再把任务丢到队列中?
在开发过程中,合理使用线程池,可以有以下好处。1,降低资源消耗;提高线程到重发利用率,降低创建和销毁线程的消耗。2,提高响应速度;任务来了,直接有线程可用可执行,而不是先创建线程,再执行。3,提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。在使用Java的线程池的时候,都是使用同一个底层方法来创建线程的 public ThreadPoolExecutor(int corePoolSize, int m
2020-05-18 17:39:05 1195
转载 用户态和核心态的区别
1.操作系统需要两种CPU状态:内核态(Kernel Mode):运行操作系统程序用户态(User Mode):运行用户程序2.指令划分:特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O 内存清零 修改程序状态字 设置时钟 允许/禁止终端 停机非特权指令:用户程序可以使用的指令。 举例:控制转移 算数运算 取数指令 访管指令(使用户程序从用户态陷入内核态)3.特权级别:特权环:R0、R1、R2和R3R0相当于内...
2020-05-14 17:17:06 1938
原创 Java synchronized 原理总结 详细阐述 无锁to偏向锁to轻量级锁to重量级锁的转变过程,不虚此行。
锁的内存语义synchronized的底层是使用操作系统的mutex lock实现的。内存可见性:同步快的可见性是由“如果对一个变量执行lock操作,将会清空工作内存中此变量的值,在执行引擎使用这个变量前需要重新执行load或assign操作初始化变量的值”、“对一个变量执行unlock操作之前,必须先把此变量同步回主内存中(执行store和write操作)”这两条规则获得的。 操作原子性:持有同一个锁的两个同步块只能串行地进入锁的内存语义:当线程释放锁时,JMM会把该线程对应的本地内存中的
2020-05-14 16:23:25 886 2
转载 Java 内存模型 (JMM)总结
Java内存模型(JMM)我们常说的JVM内存模式指的是JVM的内存分区;而Java内存模式是一种虚拟机规范。Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。原始的Java内存模型存在一些不足,因此J
2020-05-13 15:27:42 565
原创 IntelliJ IDEA 中 Git 修改服务器地址的方法
git服务器换地址之后,本地代码不动,改改git的地址,就把服务器由a换到b了修改项目的服务器地址,之后就和新的git服务器地址关联了。再更新的时候,需要再次验证一下账号密码,就OK了。...
2020-05-09 14:57:26 4368
原创 Java 多线程 interrupt - 线程的中断
正如中断二字所表达的意义,在线程运行(run方法)中间打断它,在Java中,提供了以下3个有关线程中断的方法//中断线程(实例方法)public void Thread.interrupt();//判断线程是否被中断(实例方法)public boolean Thread.isInterrupted();//判断是否被中断并清除当前中断状态(静态方法)public static boolean Thread.interrupted();当一个线程处于被阻塞状态或者试图执行一个阻塞操作时
2020-05-08 18:28:04 619
原创 Java中各种锁的详细解读
在没有实际接触和详细了解Java的各种锁之前,可能觉得Java 中的各种锁,会很多很复杂,不是的,看一遍不行,再看一遍,就差不多了,还是比较好理解的。虽然距离实际使用还是有点距离,但是,要跨出第一步,了解之后,再考虑如何使用和高级使用。这个图画的也很好1. 乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应...
2020-05-08 16:58:36 524
原创 Java 多线程-synchronized用法和实现原理
造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式有个高尚的名称叫互斥锁,即能达到互斥访问目的的锁,也就是说当一个共享数据被当前正在访问的线程加上互斥锁后,在同一个时刻,其他线程只能处于等待的状态,直到当前线程处理完毕...
2020-05-07 15:52:14 1142
转载 ls 按时间排序
在linux系统中,使用ls命令按时间排序文件,其实很简单,如下:ls-altr即可按时间排序当前目录下的文件。附,ls命令的参数中文详解:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c 输出文件的 i 节点的修改时间,并以此排序。-d 将目录象文件一样显示,而不是显示其下的文件。-e...
2020-05-07 11:23:42 9579
大众点评sdk例子
2015-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人