自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

国山的博客

神一样的男人!

  • 博客(35)
  • 收藏
  • 关注

原创 linux下查看某进程内有多少个线程(JAVA应用为例)

运行结果如下,PIDWie进程号,SPID为线程号,CMD为线程名称。top -H -p PID //实时显示PID进程内的各个线程情况。ps -T -p 查看pid进程内的线程。

2023-07-20 10:25:58 1467

原创 GIT进行代码仓库完整迁移

GIT代码仓库迁移

2022-07-27 13:06:40 6564 1

原创 Linux系统常用命令

一、用户操作1、用户添加命令useradduseradd [选项] 用户名选项:-u UID:手工指定用户的UID号-d 家目录:手工指定用户的家目录-c 用户说明:手工指定用户的说明-g 组名:手工指定用户的初始组-G 组名:指定用户的附加组-s shell: 手工指定用户的登录shell。默认是/bin/bash也就是说我们可以自定义新添加用户的每个字段。例如:useradd -u 600 -G root,bin -d /home/lamp1 -c “t

2021-12-28 13:06:30 352

原创 Linux(CentOS)用户修改密码永久有效

一、查看密码过期时间在root用户下查看指定用户密码过期时间命令chage -l 用户名执行效果如下:二、用命令修改过期时间为永久在root用户下修改指定用户密码过期时间为永久命令chage -M 99999 用户名执行第一步的查看命令查看修改效果如下:...

2021-10-14 18:57:22 2776

原创 在springcloud框架下logback日志脱敏

一、脱敏工具类1、创建DesensitizationRule类(日志脱敏规则配置)public class DesensitizationRule { /** * 匹配字段名称规则 */ private String ruleReg; /** * 脱敏替换规则 */ private String replacement; public String getRuleReg() { return r

2021-09-24 15:39:44 546

原创 linux文件open限制limit问题解决

登录root用户执行以下命令查看默认文件打开数命令ulimit -n如果显示1024,则执行以下命令,配置文件打开数echo "* soft nofile 65535" >> /etc/security/limits.confecho "* hard nofile 65535" >> /etc/security/limits.conf执行完毕重启reboot重新登录后执行以下命令查看是否生效ulimit -n以上配置永久生效...

2021-09-07 09:44:22 886

原创 在springcloud框架下mybatis通过Interceptor实现数据库字段的加解密

一、创建加解密注解1、创建字段解密注解import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** *@ClassName:DecryptField *@description:字段解密注解 *@createTime:2021

2021-08-12 09:44:25 438

原创 linux(Centos)安装openresty-1.17.8.2(nginx)

一、简介OpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。 OpenResty通过汇聚各种设计精良的Nginx模块(主要由OpenResty团队自主开发),从而将Nginx有效地变成一个强大的通用Web应用平台。这样,Web开发人员和系统工程师可以使用Lua脚本语言调动Nginx支持的各种C以及Lua模块,快速构...

2021-08-04 11:12:58 1492

原创 基于Sentinel(哨兵)搭建实现Redis高可用集群

概述Redis哨兵为Redis提供了高可用性。实际上这意味着你可以使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis部署。哨兵模式还提供了其他的附加功能,如监控,通知,为客户端提供配置。下面是在宏观层面上哨兵模式的功能列表:监控:哨兵不断的检查master和slave是否正常的运行。通知:当监控的某台Redis实例发生问题时,可以通过AP

2017-04-05 10:04:54 19447 7

原创 Flume NG高可用集群搭建详解(基于flume-1.7.0)

1、Flume NG简述Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中。轻量,配置简单,适用于各种日志收集,并支持 Failover和负载均衡。并且它拥有非常丰富的组件。Flume NG采用的是三层架构:Agent层,Collector层和Store层,每一层均可水平拓展。其中Agent包含Source,Channel和 Sink,三

2017-03-22 09:53:26 21687 8

原创 logback.xml按时间和文件大小生成日志(分级别)

[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client} %msg%n ${LOG_HOME}/trace.log true ${LOG_HOME}/logs/trace.%d{yyyy-MM-ddssSSS}.%i.log.zip 20MB 7 20GB [%date{yyy

2017-03-21 16:06:11 12749

原创 Java动态打Jar包工具类

import java.io.*;import java.net.*;import java.util.jar.*;import java.util.regex.Matcher;/** * 打Jar包工具类 */public class JarPackageUtil { /** * 动态生成Jar包 */ public static File createJar(Cla

2017-03-17 11:45:54 1464

原创 java序列化与反序列化工具类

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;

2017-03-15 17:45:54 2075

转载 Java.util.Collections工具类

Java.util.Collections此类为java.util.Collection的工具类.字段:public static final List EMPTY_LIST ;public static final Map EMPTY_MAP ;public static fianl Set EMPTY_SET ;方法:boolean addAll(Collectio

2017-03-15 11:17:18 1325

原创 Dubbo后台管理和监控中心部署

Dubbo后台管理和监控中心部署   通过dubbo监控中心和后台管理可以很好的监控dubbo服务,监控服务端服务和客户端调用情况,调用次数,调用日志,方便问题查找。下面我们看看dubbo的管理后台和监控中心怎么部署。  1.软件下载    部署管理后台和监控中心需要以下软件   opensesame  下载地址:https://github.com/a

2017-03-09 10:52:36 1871

原创 Java中的移位运算符:<<,>>,>>>

Java中有三种移位运算符1、<< : 左移运算符,num 2、>> : 右移运算符,num >> 1,相当于num除以2;3、>>> : 无符号右移,忽略符号位,空位都以0补齐。下面来看看这些移位运算都是怎样使用的:public class Test { public static void main(String[] args) { i

2017-03-07 14:23:25 359

转载 数组与集合

1、拷贝之Java.lang.System.arraycopy和java.util.Arrays.copyOf方法Java数组的复制操作可以分为深复制和浅复制。一般对于引用类型的数组来说,需要在某些时候进行深复制。 首先来看一下两个方法实现的源代码,如下:[java] view plain copyprin

2017-03-06 17:43:19 289

转载 Java 7之多线程第5篇 - 原子类

一道面试题:假如有一个文件可以允许多个人同时编辑,如果一个人在编辑完成后进行提交时,另外一个人已经对这个文档进行了修改,这时候就需要提醒下要提交的人,“文档已经修改,是否查看?”最为简单的办法就是:其实原子类大体也是用到这样的思想。在Java.util.concurrent包里包含的主要就是一些与并发实现相关的类,首先来看一下最为基础的原子类(java.util.concu

2017-03-06 17:41:45 246

转载 Java 7之多线程第7篇 - 线程锁基础

线程锁是用来实现同步机制的,前面讲到过使用synchronized关键字来实现同步。传送门 - 使用Synchronized关键字实现同步  http://blog.csdn.net/mazhimazh/article/details/16921255使用这个关键字实现的同步块有一些缺点:(1)锁只有一种类型(2)线程得到锁或者阻塞(3)不能实现很好的并发为了解决如上的各种

2017-03-06 17:39:57 331

转载 Java 7之多线程第8篇 - 互斥锁 ReentrantLock

ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。也就是说ReentrantLock在同一个时间点只能被一个线程获取。Java的synchronized块并不保证尝试进入它们的线程的顺序。因此,如果多个线程不断竞争访问相同的synchronized同步块,就存在一种风险,其中一个或多个线程永远也得不到访问权 —— 也就是说访问权总是分配给了其它线程。这种情况被称作线程饥饿

2017-03-06 17:38:41 261

转载 Java 7之多线程第9篇 - 显式的Condition对象

下面这个例子使用synchronized关键字和wait() 、notifyAll()方法实现同步。[java] view plain copyprint?public abstract class BaseBoundedBuffer {      private final V[] buf;      private int tail;      

2017-03-06 17:37:28 265

转载 Java 7之多线程第10篇 - Semaphore

Semaphore用于保存当前可用许可的数量。是通过共享锁实现的。根据共享锁的获取原则,Semaphore分为"公平信号量"和"非公平信号量"。"公平信号量"和"非公平信号量"的释放信号量的机制是一样的!不同的是它们获取信号量的机制:线程在尝试获取信号量许可时,对于公平信号量而言,如果当前线程不在队列的头部,则排队等候;而对于非公平信号量而言,无论当前线程是不是在队列的头部,它都会直接获取信号

2017-03-06 17:36:25 289

转载 Java 7之多线程第11篇 - 读写锁

ReadWriteLock是ReentrantReadWriteLock的接口,而ReentrantReadWriteLock实现类中包括子类ReadLock和WriteLock。首先来看一下ReadWriteLock接口中方法的定义:[java] view plain copyprint?public interface ReadWriteLo

2017-03-06 17:35:03 225

转载 Java 7之多线程第12篇 - CountDownLatch

CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。来看一下这个类的构造方法,如下:[java] view plain copyprint?public CountDownLatch(int count) {         if (count 0) throw new Illega

2017-03-06 17:33:50 262

转载 Java 7之多线程 - 线程的取消与关闭

Java没有一种安全的抢占式方法来停止线程,只有一些协作式机制。其中一种协作机制能设置某个“已请求取消”标志,而任务将定期查看该标志。如果设置了这个标志,那么任务将提前结束。举例如下:[java] view plain copyprint?public class PrimeGenerator implements Runnable {      p

2017-03-06 17:31:39 324

转载 ThreadLocal变量

在做ThreadLocal时遇到了一件特别郁闷的事。因为ThreadLocal是线程独享的,但是我在做程序开发时却遇到一个问题,就是ThreadLocal里总是有另外一个线程插入的数据。最后终于发现,原来启动的两个线程都是main线程,不知道为什么。。。。。。。。。clean项目,重启MyEclipse后,问题解决了。。。。。。。。。。紧接着又一件郁闷事来了。在使用线程池时,如果某

2017-03-06 17:29:06 320

转载 Java之多线程易范错误

[html] view plain copyprint?public class mainTestImpl {         /*       * 任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止 线程 调用stop()方法时或run()方法执行       * 结束后,线程即处于死亡状态。 处于死亡状态的线程不具有继续运行的能力。       */   

2017-03-06 17:27:44 263

转载 线程异步

[html] view plain copyprint?private void executeAndWait(SimpleAsyncTaskExecutor executor, Runnable task, Object monitor) {          synchronized (monitor) {              executor.execu

2017-03-06 17:26:28 278

转载 Java 7之多线程并发容器 - CopyOnWriteArrayList

CopyOnWriteArrayList相当于线程安全的ArrayList,通过增加写时复制语义来实现线程安全性。底层也是通过一个可变数组来实现的。但是和ArrayList不同的时,它具有以下特性: 它最适合于具有以下特征的应用程序:List 大小通常保持很小,只读操作远多于可变操作,需要在遍历期间防止线程间的冲突 支持高效率并发且是线程安全的 因为通常需要复制整个基础数组,所以可变操作(

2017-03-06 17:23:53 327

转载 Java 7之多线程并发容器 - ConcurrentHashMap

与HashMap一样,ConcurrentHashMap也是一个基于散列的Map,但是它使用了锁分段的技术来提供更高的并发性和伸缩性。锁分段就是进一步对一组独立的对象进行分解。例如,在ConcurrentHashMap的实现中使用了一个包含16个锁的数组,每个锁保护所有散列桶的1/16,其实第N个散列桶由第(N mod 16)个锁来保护。所以这个并发集合可以支持多达16个并发的写入器。首先

2017-03-06 17:22:07 297

转载 Java 7之多线程并发容器 - ArrayBlockingQueue

Java中有些多线程编程模式在很大程序上都依赖于Queue实现的线程安全性,所以非常有必要认识,首先来看一下接口定义,如下:[java] view plain copyprint?public interface Queue extends Collection {      // 向队列中添加元素      boolean add(E e);   

2017-03-06 17:21:04 282

转载 Java 7之多线程并发容器 - LinkedBlockingQueue

LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。此外,LinkedBlockingQueue还是可选容量的(防止过度膨胀),即可以指定队列的容量。如果不指定,默认容量大小等于Int

2017-03-06 17:17:53 218

转载 Java 7之多线程线程池 - Callable和Future

Callable接口代表一段可以调用并返回结果的代码;Future接口表示异步任务,是还没有完成的任务给出的未来结果。所以说Callable用于产生结果,Future用于获取结果。    Java 5在concurrency包中引入了Java.util.concurrent.Callable 接口,它和Runnable接口很相似,但它可以返回一个对象或者抛出一个异常。    Cal

2017-03-06 11:26:59 358

转载 Java 7之多线程线程池 - 线程池原理(1)

Java 7之多线程线程池 - 线程池原理(1)2014-02-15 16:30 15458人阅读 评论(7)收藏举报本文章已收录于:分类: Java 7并发源码分析(18) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。来看一下线程池的框架图,如下:

2017-03-06 10:55:32 286

转载 Java 7之多线程线程池 - 线程池原理(2)

线程池能够复用线程,减少线程创建,销毁,恢复等状态切换的开销,提高程序的性能。一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行的任务的队列。ThreadPoolExecutor类中定义了一些与线程状态与活动线程数相关的一些变量,如下:[java] view plain copyprint?private final Atomi

2017-03-06 10:36:30 235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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