原子操作类似数据库中的事务,操作中的所有指令要么全部执行,要么全部不执行。 以自增操作为例,a++对应三个CPU指令: 在单核多线程程序中,如果对一个变量的自增操作是原子的,那么就没有必要在自增操作外围加锁了。 在多核多线程程序中,由于自增操作可以在多个CPU中同步执行,即使自增操作是原子的,我们也 ...
分类:
其他好文 时间:
2017-07-28 15:49:16
阅读次数:
110
对于多线程编程,很多人概念不清,写代码的时候要么是处处加锁,影响性能不说,还容易莫名其妙的死锁,还有人对多线程敬而远之。所以学习多线程编程最重要的不是学习API,而是理解什么才是多线程安全的代码从例子说起 #include <windows.h> #include <process.h>long g ...
分类:
编程语言 时间:
2017-07-27 23:36:28
阅读次数:
305
http://blog.csdn.net/zcgsdu/article/details/44965753 前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理 ...
分类:
数据库 时间:
2017-07-27 20:09:02
阅读次数:
272
PLSQL中显式游标使用的4个步骤 创建-打开-提取-关闭 本例简单介绍一下游标处理的4个过程中涉及到的加锁,一致性读的问题. 显式游标处理需四个 PL/SQL步骤: 1 定义/声明游标:就是定义一个游标名,以及与其相对应的SELECT 语句。 格式: CURSOR cursor_name IS s ...
分类:
其他好文 时间:
2017-07-27 09:33:35
阅读次数:
299
shell注意事项记录日志shell执行加锁(针对不能同时执行)加选项(禁止直接执行)备注#记录日志
#!/bin/bash
shell_log="./shell_log"
#Writelog
shell_log(){
shell_info=$1
echo"$(date+%Y-%m-%d)T$(date+%H:%M:%S):$shell_info"
}
shell_log$1#综合示例
#!/bin/bash
#Aut..
分类:
系统相关 时间:
2017-07-26 17:35:02
阅读次数:
139
本次的标题是我在写单例模式的博客时遇到的问题,所以今天专门写了的demo让自己记住怎么简单的使用多线程。 一直纠结的是怎么在for循环中多次实例化对象,好复现单例模式在没有加锁的情况下出现多个实例对象的错误。 先给大家看一下我简单实现的多线程实例对象。 方案一: Demo.cs Program.cs ...
分类:
编程语言 时间:
2017-07-25 21:24:30
阅读次数:
211
MySQL数据备份 在mySQL里面,有逻辑备份和物理备份。逻辑备份最大长处是对于各种存储引擎,都能够使用相同的方法来备份。而物理备份则不同。不同的存储引擎有着不同的备份方法。 逻辑备份与恢复 备份 在MySQL中逻辑备份是使用mysqldump将数据库中的数据备份为一个文本文件,备份的文件能够被查 ...
分类:
数据库 时间:
2017-07-23 22:57:54
阅读次数:
523
$s = microtime(true); for($i=0; $iaaa($array, $array, $array); $data = a::bbb($array, $array, $array); } $e = microtime(true); echo "native:".($e-$s). ...
分类:
Web程序 时间:
2017-07-21 19:56:35
阅读次数:
289
提到索引,首先想到的是效率提高,查询速度提升,不知不觉都会有一种心理趋向,管它三七二十一,先上个索引提高一下效率..但是索引其实也是暗藏杀机的... 今天压测带优化项目,开着Jmeter高并发访问项目,后台连着mysql通过show processlist命令查看查询情况,发现些sql语句需要优化, ...
分类:
数据库 时间:
2017-07-20 23:43:36
阅读次数:
231
众所周知,无限制下多线程操作共享变量是危险的,为了保证线程安全语义,一般的建议是在操作共享变量时加锁,比方说在用synchronized关键字修饰的方法内读写共享变量。 但是synchronized开销较大,有没有更轻量更优雅的解决方案呢? volatile是轻量级的synchronized,在正确 ...
分类:
编程语言 时间:
2017-07-20 21:05:34
阅读次数:
137