线程间控制之Semaphore使用介绍 线程间控制之Semaphore使用介绍,Semaphore(信号量)通常用于限制访问某些(物理或逻辑)资源线程的数量。一个信号量维护一组许可证。每个acquire()都会阻塞,直到获得许可证;每个release()会释放许可证。如果没有线程需要获取许可证;信号量只是像其它池对象那样保持一个可用许可证的计数。 池对象:线程池、数据库连接池等,创建一个池子,池子中已经建立好了连接,需要使用的时候直接从池子中拿来用。
线程间控制之CountDownLatch和CyclicBarrier使用介绍 一、CountDownLatch介绍CountDownLatch采用减法计算;是一个同步辅助工具类和CyclicBarrier类功能类似,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。二、CountDownLatch俩种应用场景: 场景一:所有线程在等待开始信号(startSignal.await()),主流程发出开始信号通知,既执行startSignal.countDown()方法后;所有线程才开始执行;每个线程执行完发出做完信号,既执行do...
拨开云雾synchronized使用五种方式介绍 穷举介绍synchronized使用的五种场景。synchronized锁的范围越小,对代码执行效率的影响最小。最好的方式就是不加锁,并发编程不一定都是非线程安全的,只有多线程共享同一实例变量才有可能会导致线程安全问题。非线程安全问题才需要加锁进行同步
Java线程相关接口、类继承关系 Executor接口只有一个execute方法,ExecutorService接口继承了Executor接口,扩展了一些方法,ThreadPoolExecutor继承了抽象类AbstractExecutorService实现了ExecutorService,Executors类调用ThreadPoolExecutor类创建线程池
Java诊断工具之__VisualVM 一、JDK自带的工具jps JVM Process Status Tool 虚拟机进程状况工具 jps命令用于列出正在运行的虚拟机进程信息 jstat JVM Statistics Monitoring Tool 虚拟机统计信息监视工具 jstat命令用于监视虚拟机各种运行状态信息 jinfo Configuration Info for Java Java配置信息工具 jinfo命令用于实时查看和调整虚拟机各项参数 jmap ..
Java诊断工具之__Arthas 一、Arthas简介 Arthas(阿尔萨斯)是Alibaba开源的Java诊断工具。支持Linux/Mac/Windows 1、下载地址:https://github.com/alibaba/arthas/releases 2、arthas-bin解压之后的目录结构二、启动Arthas监测应用程序1、用as.sh启动./as.sh2、用arthas-boot启动java -jararthas-boot.jar...
一文读懂计算机网络http、ftp、ssh、tls/ssl、dns等常见名词 一、计算机网络体系结构:TCP/IP的四层协议 应用层 application layer HTTP FTP DNS SMTP TELNET 基础应用层 SSL or TLS(transport layer security) SSH 运输层 transport layer TCP或UDP 网路层 network layer IP ...
线程组ThreadGroup使用介绍+自定义线程工厂类实现ThreadFactory接口 一、ThreadGroup类介绍 线程组是一个树形结构 ,ThreadGroup类有一些方法可以删除或者新增维护这棵树,也有一些查询树节点状态和层级关系的方法;权限控制和linux的属主属组相似:线程只允许访问关于它自己的线程组的信息,但是不允许访问它所在线程组的父线程组或任何其他线程组的信息。 代码示例:package com.yu;public class ThreadGroupTest { public static void main(S...
使用Executors类快速创建线程池 这个类中定义了Executor、ExecutorService、ScheduledExecutorService、ThreadFactory和Callable类的工厂方法和实用方法。这个类支持以下几种方法: 一、此类中方法简介创建各种线程池的静态方法,返回值为ExecutorService。方法 描述 newCachedThreadPool() 创建一个缓存线程池,线程池内的线程会存活60s newCachedT...
MYSQL一种分表实现方案及InnoDB、MyISAM、MRG_MYISAM等各种引擎应用场景介绍 一、MYSQL实现分表完整示例1、建三张一样的分表user1、user2、user3CREATE TABLE user1 ( id INT auto_increment NOT NULL, name varchar(50) NULL, sex INT DEFAULT 0 NOT NULL, CONSTRAINT user1_pk PRIMARY KEY (id))ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;CR
工作中常使用的linux命令 1、查看所有已挂载磁盘的使用情况df -h 2、查看某个特定目录的磁盘使用情况(默认情况下是当前目录)du -h3、查看指定目录的磁盘空间使用情况du -h -c DirName4、把指定目录打出一个.tar.gz包tar -zcvf FileName.tar.gz DirName5、解压.tar.gz包tar -zxcfFileName.tar.gz6、chmod命令用来改造文件和目录的安全性设置chmod 755 newfilechm...