ES8已经正式发布了,其新特性有:字符串填充、异步函数与共享内存与原子操作等。本文对着三个特性进行深入的解析。当然还有其他的一些特性。 1.字符串填充 ES8中为字符串添加了新的内置函数padStart()、padEnd(),主要用于固定字符串的长度并且用指定的字符进行填充,以padStart为例, ...
分类:
其他好文 时间:
2017-07-23 21:16:33
阅读次数:
219
class Program { public static int numb = 0; public static int numbb = 100; static ManualResetEvent manu = new ManualResetEvent(false); static void Mai... ...
分类:
其他好文 时间:
2017-07-22 21:02:54
阅读次数:
131
近期总体过了下AQS的结构。也在网上看了一些讲AQS的文章,大部分的文章都是泛泛而谈。又一次看了下AQS的代码,把一些新的要点拿出来说一说。 AQS是一个管程。提供了一个主要的同步器的能力,包括了一个状态,改动状态的原子操作。以及同步线程的一系列操作。它是CLHLock的变种,CLHLock是一个基 ...
分类:
编程语言 时间:
2017-07-21 18:15:28
阅读次数:
234
Redis特点: 1、速度快 2、支持丰富的数据类型:字符串、哈希列表、集合 3、操作具有原子性,所有Redis操作都是原子操作 4、多实用工具,可应用如缓存,消息队列,应用程序中任何短期数据,如web中会话,网页命中计算 Redis有专用命令管理键,包括有设置过期时间,判断是否存在,转移,查找类型 ...
分类:
其他好文 时间:
2017-07-21 01:22:12
阅读次数:
161
这个类真的非常实用,更重要的是 它确实非常简单: 附上自己的代码,可以自己试试: AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一 ...
分类:
其他好文 时间:
2017-07-15 13:50:09
阅读次数:
156
1、信号量 用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行:初始化,P操作和V操作,这三种操作都是原子操作。 P操作(递减操作)可以用于阻塞一个进程,V操作(增加操作)可以用于解除阻塞一个进程。 基本原理是两个或多个进程可以通过简单的信号进行合作,一个进程可以被迫在某一位置停止,直到 ...
分类:
系统相关 时间:
2017-07-14 23:08:02
阅读次数:
238
一.基本类原子操作 基本类原子操作的类主要有:AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference<V> 基本类的原子操作主要是对boolean,Integer,long,reference定义的变量进行原子性的操作,简单点说就是它提供的方法都 ...
分类:
编程语言 时间:
2017-07-12 13:38:52
阅读次数:
265
linux支持的哪些操作是具有原子特性的?知道这些东西是理解和设计无锁化编程算法的基础。 下面的东西整理自网络。先感谢大家的分享! __sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去看原文。Multithreaded simple data ...
分类:
系统相关 时间:
2017-07-03 16:22:09
阅读次数:
262
1.背景*CURD操作通常是使用关系型数据库系统中的结构化查询语言(StructuredQueryLanguage,SQL)完成的*CURD定义了用于处理数据的基本原子操作*CURD代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)操作。2.创建表操作*创建数据库(DB)mytestCHARACTERSE..
分类:
数据库 时间:
2017-07-01 21:42:08
阅读次数:
186
以前在开发时只知道依靠数据库事务来保证程序关闭时数据的完整性。但有些时候一个业务上要求的原子操作,不一定只包括数据库,比如外部接口或者消息队列。此时数据库事务就无能为力了。这时我们可以依靠java提供的一个工具方法:java.lang.Runtime.addShutdownHook(Thread h ...
分类:
编程语言 时间:
2017-07-01 17:26:30
阅读次数:
199