Java并发工具类 CyclicBarrier Java并发工具类需要依赖对于Java锁机制的理解,尤其是AQS,可以参见前文:Java锁机制浅析(一)Java锁机制浅析(二)之AQS Java并发工具类 CountDownLatch3.2 CyclicBarrier 线程屏障允许一组线程全部等待彼此达到共同屏障点的同步辅助类。 它可以在等待的线程被释放之后重新使用。想象一下导弹部队饱和攻击哈哈,~所有导弹发射车到达指定位置后,开...
Java并发工具类 CountDownLatch 3.并发工具类前面分析了Java中两种基本的并发同步实现方式:Synchronized和Lock API :Java锁机制浅析(一)Java锁机制浅析(二)之AQS 有了AQS这个并发同步基础类之后,基于AQS实现了,ReentrantLock, ReentrantReadWriteLock CountDownLatch、CyclicBarrier、Semaphore等工具类。Reen...
Java锁机制 浅析(二)之AQS 2.2.2 内部原理类继承结构先上一个lock相关api的继承结构(特意处理掉了一些类,以便观察其特点)ReentrantLock和 ReentrantReadWriteLock都是借助内部类Sync来实现Lock接口。ReentrantReadWriteLock没有直接实现Lock接口而是内置了读锁-ReadLock和写锁-WriteLock分别实现Lock接口。Sync包含两个子类...
go - 03 基础语法(持续更新) 基本语法标识符由一个或是多个字母、数字、下划线组成,不能以数字开头。行分隔符一行代表一个语句结束,行尾不需要分号,(多个语句写在一行时需要用分号进行隔开)注释// 单行注释/* 多行注释*/packagepackage main一个可执行go程序只有一个main包, main package中的go程序文件直接存放在工程根目录。其他package下的程序文件存放在根目...
Java锁机制 浅析(一) 锁的概念CAS:比较和交换(Conmpare And Swap)用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个线程更新,则写入将失败。 操作结果必须说明是否进行替换; 这可以通过一个简单的布尔响应(这个变体通常称为比较和设置)...
Python3环境搭建 mac下安装python31,采用HomeBrew套件工具安装python3brew install python3macOS安装pip3macos下安装python3后并没有自带pip3,可以手动进行安装1,下载get-pip.py并在python3下执行curl https://bootstrap.pypa.io/get-pip.py | python32,将pip3软链接到...
oracle数据文件迁移 以dba身份连接oraclesqlplus /as sysdba查询当前数据文件select name from v$datafile;记录要迁移的数据库dbf文件,我这里是/oradata/bld/bld01.dbf关闭oracleshutdown immediate;exit;移动dbf文件至目标位置mv /oradata/bld/bld01.dbf /dist/orada...
IDEA问题记录 1:无法找到包或类导入工程或者修改工程设置后,部分代码会出现无法访问到工程中的包或类的情况。解决:File --> Invalidate Caches /Restart – > Invalidate and Restart 即可。...
go fmt.Scan Scanf Scanln的一个小问题 bug记录Scan,Scanf,Scanln的一个问题go的fmt.Scan在使用中的一个小问题,如下: for{ fmt.Println("请选择:1-剪刀 2-石头 3-布 ,0-不玩了") count, err := fmt.Scan(&people) if err != nil { fmt.Println(err) ...
IEDA2018 安装配置使用入门 以前一直都是使用Eclipse,虽然每到build的时候都是卡卡卡卡卡…… 毕竟免费也用顺手了。但是最近总遇到些莫名的问题,Run Java Application 总是报莫名的错误(随机出现,很蛋疼),还有跑着跑着随机的崩溃~~~~实在不能忍了,换Idea!!!由于是第一次接触Idea只好先去网上找各种安装教程,记录下以后参考。安装破解篇: 参考:http://www.3322....
go - 02 VsCode插件安装 Go-VsCode 插件安装问题在安装go插件后,会自动更新很多依赖库文件,都是从Github更新下来,但是因为Github的文件中,多有应用go官网中的文件,导致,因为网络缘故,不能直接下载,导致安装失败,如下: Installing 10 tools at /Users/lane/gospace/bin gocode gopkgs go-outline ...
go - 01 环境安装 Go环境安装mac下两种安装办法1, Mac下的brew直接安装Go(推荐) brew install go2, 直接从golang官网下载对应的安装包进行安装。打开 https://golang.google.cn/dl/ 选择 Apple macOS macOS 10.8 or later, Intel 64-bit processor go1....
mysql中文乱码完美解决 MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!!utf8可以兼容世界上所有字符!!!!一、避免创建数据库及表出现中文乱码和查看编码方法1、创建数据库的时候:CREATE D
mybatis3.x 插入完整日期 项目中采用mybatis3.x作为orm框架,mapper.xml是采用mybatis自动生成工具生成的。当oracle数据库字段类型为data类型时,生成的pojo的类型时java.util.Date。但是在实际使用时发现,pojo中的date数据是完整的(包括日期和时分秒)但插入后,数据库中的时间只剩下日期,时分秒丢失了。后来google了老半天,终于发现了一个解决办法:对于I
spring3.x和mybatis3.x SQL日志打印问题 问题:项目进行过程中发现spring3+mybatis集成后,mybatis的执行sql日志信息始终不能记录。在google上找了一些资料,总结一下,主要如下:1,log4j配置问题,需要在log4j.properties中加入如下配置: log4j.logger.com.ibatis=DEBUG log4j.logger.com.ibatis.common.jdbc.Simp
js 自定义对象 JS创建类和对象 JavaScript创建类/对象的几种方式在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的。JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听