并发编程 —— 谈谈线程中断
前言 如何中断一个线程,肯定不会使用 stop。而是使用 interrupt 方法。同时,我们知道,中断一个线程只是打个标志位。不会真的中断线程,但,如果线程是阻塞状态的呢? 而 Java 中,想要阻塞一个线程有很多种方式。 synchronized Object.wait() Lock Condition.await() LockSupport.park() Thread.join() 当然上面都是很简单的说说,API 并不是那么的详细。像 Lock 的 api 就有响应中断的。 还有 Th
使用并发工具实现 RPC 调用流量控制
前言 RPC 服务中,每个服务的容量都是有限的,即资源有限,只能承受住给定的网络请求,所以,在设计 RPC 框架的时候,一定要考虑流量控制这个问题。而 Java 中,实现流量控制有很多中方式,今天说 2 种。 Semaphore 实现流控 代码: static Semaphore semaphore = new Semaphore(100);
public static void main(String[] args) {
Executor timeTask = Execu
并发编程——ConcurrentHashMap#helpTransfer() 分析
前言 ConcurrentHashMap 鬼斧神工,并发添加元素时,如果 map 正在扩容,其他线程甚至于还会帮助扩容,也就是多线程扩容。就这一点,就可以写一篇文章好好讲讲。今天一起来看看。 源码分析 为什么帮助扩容? 在 putVal 方法中,如果发现线程当前 hash 冲突了,也就是当前 hash 值对应的槽位有值了,且如果这个值是 -1 (MOVED),说明 Map 正在扩容。那么就帮助 Map 进行扩容。以加快速度。 具体代码如下: int hash = spread(key.hash
理解css相邻兄弟选择器
今天在菜鸟教程看到了css组合选择符的“相邻兄弟选择器”,刚开始对这个概念有些不太理解,通过查阅资料并且经过一些试验总算有了些头绪。 原文解释是“相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。” 这里面有2个关键信息:(1)紧接在另一元素后;(2)二者有相同父元素 例子①: <!DOC
并发编程——ConcurrentHashMap#transfer() 扩容逐行分析
前言 ConcurrentHashMap 是并发中的重中之重,也是最常用的数据结果,之前的文章中,我们介绍了 putVal 方法。并发编程之 ConcurrentHashMap(JDK 1.8) putVal 源码分析。其中分析了 initTable 方法和 putVal 方法,但也留下了一句话: 这篇文章仅仅是 ConcurrentHashMap 的开头,关于 ConcurrentHashMap 里面的精华太多,值得我们好好学习。 说道精华,他的扩容方法绝对是精华,要知道,Concurren
poj 2083 Fractal
Description A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on all scales. The object need not exhibit exactly the same structure at all scales, but the same "type" of structures must appear on all sc
Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔
这是一篇很棒的介绍金字塔的博文,由浅入深,逐步到DOG金字塔~一、 图像金字塔图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像。把具有最高级别分辨率的图像放在底部,以金字塔形状排列,往上是一系列像素(尺寸)逐渐降低的图像,一直到金字塔的顶部只包含一个像素点的图像,这就构成了传统意义上的图像金字塔。获得图像金字塔一般包括二个步骤:1. 利用...
第七届蓝桥杯:小明打靶
打靶小明参加X星球的打靶比赛。比赛使用电子感应计分系统。其中有一局,小明得了96分。这局小明共打了6发子弹,没有脱靶。但望远镜看过去,只有3个弹孔。显然,有些子弹准确地穿过了前边的弹孔。不同环数得分是这样设置的:1,2,3,5,10,20,25,50那么小明的6发子弹得分都是多少呢?有哪些可能情况呢?下面的程序解决了这个问题。仔细阅读分析代码,填写划线部分缺失的内容。package dibajie...
CentOS下使用valgrind-memcheck对C语言程序进行检查
CentOS7安装valgrind教程https://www.centoschina.cn/course/config/5987.htmlCentOS7安装gcc编译器教程https://www.centoschina.cn/course/config/10136.html示例的hello.c文件代码为#include &lt;stdlib.h&gt; #include &lt;malloc.h...
mybatis异常 bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorE
这个错误是自己开发过程中不细心导致的,特记下来,作为警惕。; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that correspond...
Atom编辑器汉化成中文版
Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器。小松今天看到了这个编辑器,而且感觉不错,推荐一下 Atom官方网站https://atom.io/ GitHub 以后肯定会通过官方模块把 Atom 和 GitHub 进行深度整合,让开发者因为 Atom 而用 GitHub 用得爽,进一步加强用户黏度才是目的吧 除了基本的操作和界面外,和 Sublime 最大的差别在于扩展性。A...
Bootstrap全局css样式
HTML5文档模型和移动设备优先
HTML5文档声明及语言选择
&amp;amp;amp;lt;meta name=&amp;amp;quot;viewport&amp;amp;quot; content=&amp;amp;quot;width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no&amp;amp;quot; /&amp;amp;amp;g
PCM声音重采样库libsample的使用
在openwrt上使用ALSA播放语音, 因为要适应不同的采样率的声音源alsa声卡播出统一使用48k采样率,声音源不是48K的, 需要使用 libsamplerate库进行resample这里有下载:https://src.fedoraproject.org/repo/pkgs/libsamplerate/libsamplerate-0.1.8.tar.gz/1c7fb25191b4e6e362...
TensorFlow入门(2)矩阵基础
placeholder(type,strucuct…)它的第一个参数是你要保存的数据的数据类型,大多数是tensorflow中的float32数据类型,后面的参数就是要保存数据的结构,比如要保存一个1×2的矩阵,则struct=[1 2]。它在使用的时候和前面的variable不同的是在session运行阶段,需要给placeholder提供数据,利用feed_dict的字典结构给place...
Vue.set全局操作
Vue.set的作用就是在构造器的外部操作构造器内部的数据,属性和方法。其他知识点:vue可以在外部声明数据,然后赋值给构造器; 在构造器外部声明一个方法,有三种方法可以改变构造器中的数值...
读取.properties配置文件里面的内容工具类
读取配置文件的信息,可方便修改,配置文件为com.properties,package com.suncreate.pahfpt.web.utils;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properti...
ogg高版本到低版本同步
源端ogg版本:
[oracle@rac1 ogg]$ ggsci -v
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.21 18343248 18541804_FBO
Linux, x64, 64bit (optimized), Oracle 11g on May 8 2014 23:38:49
Copy
postgresql的now()与Oracle的sysdate
postgresql的now()为当前事务开始时间,
而Oracle的sysdate是当前时间。
区别在于事务。
postgresql中的now():
postgres=# begin ;
BEGIN
postgres=# select now();
now
-------------------------------
2017-03-
今日推荐
周排行