您好、欢迎来到现金彩票网!
当前位置:彩运网 > 封锁粒度 >

mysql数据库锁与隔离级别

发布时间:2019-05-11 14:11 来源:未知 编辑:admin

  当对数据库数据进行并发读写时,就会出现各种问题(比如事务相关的脏读、幻读;非事务相关的修改丢失等),为了控制这些问题就出现了锁。

  悲观锁:默认认为对数据的访问一定会产生并发问题,此时只要访问数据就对要访问的数据加锁。当我们使用悲观锁时,通常为了提高并发效率,会将悲观锁细化为读锁与写锁。

  乐观锁: 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测。

  当使用锁时,锁住东西越少,对其他竞争者影响越小,这个东西的大小就是锁粒度。根据锁粒度的大小,将锁分为行锁、表锁、页锁。

  表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 适合于以查询为主,只有少量按索引条件更新数据的应用,如Web应用;

  行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 更适合于有大量按索引条件并发更新少量不同数据,同时又有 并发查询的应用,如一些在线事务处理(OLTP)系统。

  页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般

  在上面情况下,读和写是串行的。,在一定条件下,MyISAM表也支持查询和插入操作的并发进行。MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值分别可以为0、1或2。

  当concurrent_insert设置为1时,如果MyISAM表中没有空洞(即表的中间没有被删除的行),MyISAM允许在一个进程读表的同时,另一个进程从表尾插入记录。这也是MySQL的默认设置。

  当concurrent_insert设置为2时,无论MyISAM表中有没有空洞,都允许在表尾并发插入记录。

  可以利用MyISAM存储引擎的并发插入特性,来解决应 用中对同一表查询和插入的锁争用。例如,将concurrent_insert系统变量设为2,总是允许并发插入;同时,通过定期在系统空闲时段执行 OPTIMIZE TABLE语句来整理空间碎片,收回因删除记录而产生的中间空洞。

  MyISAM存储引擎的读锁和写锁是互斥的,读写操作是串行的。那么,一个进程请求某个 MyISAM表的读锁,同时另一个进程也请求同一表的写锁,MySQL如何处理呢?答案是写进程先获得锁。不仅如此,即使读请求先到锁等待队列,写请求后 到,写锁也会插到读锁请求之前!这是因为MySQL认为写请求一般比读请求要重要。这也正是MyISAM表不太适合于有大量更新操作和查询操作应用的原 因,因为,大量的更新操作会造成查询操作很难获得读锁,从而可能永远阻塞。这种情况有时可能会变得非常糟糕!幸好我们可以通过一些设置来调节MyISAM 的调度行为。

  虽然上面3种方法都是要么更新优先,要么查询优先的方法,但还是可以用其来解决查询相对重要的应用(如用户登录系统)中,读锁等待严重的问题。

  另外,MySQL也提供了一种折中的办法来调节读写冲突,即给系统参数max_write_lock_count设置一个合适的值,当一个表的读锁达到这个值后,MySQL就暂时将写请求的优先级降低,给读进程一定获得锁的机会。

  上面已经讨论了写优先调度机制带来的问题和解决办法。这 里还要强调一点:一些需要长时间运行的查询操作,也会使写进程“饿死”!因此,应用中应尽量避免出现长时间运行的查询操作,不要总想用一条SELECT语 句来解决问题,因为这种看似巧妙的SQL语句,往往比较复杂,执行时间较长,在可能的情况下可以通过使用中间表等措施对SQL语句做一定的“分解”,使每 一步查询都能在较短时间完成,从而减少锁冲突。如果复杂查询不可避免,应尽量安排在数据库空闲时段执行,比如一些定期统计可以安排在夜间执行。

  关于InnoDB中的锁锁,与MyISAM表锁有较大区别,MyISAM表锁锁定所有的用到的表,所以比较简单。但是在InnoDB中加入了事务,且InnoDB还支持表锁。

  如果不开启事务,一条语句执行完成后释放锁,这个锁如果是表锁,估计和MyISAM中表锁一样。如果是行锁,那么由于锁住了最小单位,此时更加简单,出现的只是瞬时的变化。

  可以通过检查InnoDB_row_lock状态变量来分析系统上的行锁的争夺情况:

  InnoDB上的行锁有共享锁与排他锁。但是由于InnoDB还支持表锁,所以它还协议加两种表锁,意向共享锁与意向排他锁。

  共享锁(s):又称读锁。允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

  排他锁(X):又称写锁。允许获取排他锁的事务更新数据,阻止其他事务取得相同的数据集共享读锁和排他写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。

  意向共享锁(IS):事务打算给数据行共享锁,事务在给一个数据行加共享锁前必须先取得该表的IS锁。

  意向排他锁(IX):事务打算给数据行加排他锁,事务在给一个数据行加排他锁前必须先取得该表的IX锁。

  如果一个事务请求的锁模式与当前的锁兼容,InnoDB就请求的锁授予该事务;反之,如果两者两者不兼容,该事务就要等待锁释放。

  select … lock in share mode 加共享锁,主要用在需要数据依存关系时来确认某行记录是否存在,并确保没有人对这个记录进行UPDATE或者DELETE操作。但是如果当前事务也需要对该记录进行更新操作,则很有可能造成死锁,对于锁定行记录后需要进行更新操作的应用,应该使用SELECT… FOR UPDATE方式获得排他锁。

  只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁,这个需要通过执行计划来确定查询是否走索引!

  MySQL的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但是如果是使用相同的索引键,是会出现锁冲突的。

  当表有多个索引的时候,不同的事务可以使用不同的索引锁定不同的行,另外,不论是使用主键索引、唯一索引或普通索引,InnoDB都会使用行锁来对数据加锁。

  注:所以加过排他锁的数据行在其他事务总是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,但可以直接通过select …from…查询数据,因为普通查询没有任何锁机制。

  当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的 索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁 (Next-Key锁)。InnoDB使用间隙锁的目的,一方面是为了防止幻读,以满足相关隔离级别的要求。

  如果使用相等条件请求给一个不存在的记录加锁,InnoDB也会使用间隙锁,此时锁定的是根据检索条件向左寻找最靠近检索条件的记录值A,作为左区间,向右寻找最靠近检索条件的记录值B作为右区间,即锁定的间隙为(A,B)。

  并行操作对并行事务的操作的调度是随机的,不同的调度可能产生不同的结果。在这些不同的调度中,肯定有些调度的结果是正确的,究竟哪些调度是正确的呢?

  若每个事务的基本操作都串连在一起,没有其它事务的操作与之交叉执行,这样的调度称为串行调度,多个事务的的串行调度,其执行结果一定是正确的。但串行调度限制了系统并行性的发挥,而很多并行调度又不具有串行调度的结果,所以我们必须研究具有串行调度效果的并行调度方法。

  当且仅当某组并发事务的交叉调度产生的结果和这些事务的某一串行调度的结果相同,则称这个交叉调度是可串行化。可串行化是并行事务正确性的准则,一个交叉调度,当且仅当它是可串行化的,它才是正确的。两段锁协议是保证并行事务可串行化的方法。

  两段锁协议的事务有可能会发生死锁,为此,又有了一次封锁法。一次封锁法要求事务必须一次性将所有要使用的数据全部加锁,否则就不能继续执行。因此,一次封锁法遵守两段锁协议,但两段锁并不要求事务必须一次性将所有要使用的数据全部加锁,这一点与一次性封锁不同,这就是遵守两段锁协议仍可能发生死锁的原因所在。

  :事务T在修改数据R之前必须对其加X锁,直到事务结束才释放。以及封锁协议可以防止修改丢失,并保证事务T是可恢复的。在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,所以它不能保证可重复读和不读“脏”数据。

  :一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除防止丢失修改,还可进一步防止读“脏”数据。在二级封锁协议中,由于读完数据即可释放S锁,所以它不能保证可重复读。

  :一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议可以防止丢失修改,读“脏数据和不可重复读。三级封锁协议:三级封锁协议的目的是在不同程序上保证数据的一致性。是在一级封锁协议(一级封锁协议:修改之前先加X锁,事务完成释放)的基础上加上,读取之前还要加上S锁,事务结束后释放。

  MyISAM表锁是deadlock free的,这是因为MyISAM总是一次性获得所需的全部锁,要么全部满足,要么等待,因此不会出现死锁。但是在InnoDB中,除单个SQL组成的事务外,锁是逐步获得的,这就决定了InnoDB发生死锁是可能的。

  发生死锁后,InnoDB一般都能自动检测到,并使一个事务释放锁并退回,另一个事务获得锁,继续完成事务。但在涉及外部锁,或涉及锁的情况下,InnoDB并不能完全自动检测到死锁,这需要通过设置锁等待超时参数innodb_lock_wait_timeout来解决。需要说明的是,这个参数并不是只用来解决死锁问题,在并发访问比较高的情况下,如果大量事务因无法立即获取所需的锁而挂起,会占用大量计算机资源,造成严重性能问题,甚至拖垮数据库。我们通过设置合适的锁等待超时阈值,可以避免这种情况发生。

  通常来说,死锁都是应用设计的问题,通过调整业务流程、数据库对象设计、事务大小、以及访问数据库的SQL语句,绝大部分都可以避免。下面就通过实例来介绍几种死锁的常用方法。

  在应用中,如果不同的程序会并发存取多个表,应尽量约定以相同的顺序为访问表,这样可以大大降低产生死锁的机会。如果两个session访问两个表的顺序不同,发生死锁的机会就非常高!但如果以相同的顺序来访问,死锁就可能避免。

  程序以批量方式处理数据的时候,如果事先对数据排序,保证每个线程按固定的顺序来处理记录,也可以大大降低死锁的可能。

  在事务中,如果要更新记录,应该直接申请足够级别的锁,即排他锁,而不应该先申请共享锁,更新时再申请排他锁,甚至死锁。

  在REPEATEABLE-READ隔离级别下,如果两个线程同时对相同条件记录用SELECT…ROR UPDATE加排他锁,在没有符合该记录情况下,两个线程都会加锁成功。程序发现记录尚不存在,就试图插入一条新记录,如果两个线程都这么做,就会出现死锁。这种情况下,将隔离级别改成READ COMMITTED,就可以避免问题。

  当隔离级别为READ COMMITED时,如果两个线程都先执行SELECT…FOR UPDATE,判断是否存在符合条件的记录,如果没有,就插入记录。此时,只有一个线程能插入成功,另一个线个线个线程会因主键重出错,但虽然这个线程出错了,却会获得一个排他锁!这时如果有第3个线程又来申请排他锁,也会出现死锁。对于这种情况,可以直接做插入操作,然后再捕获主键重异常,或者在遇到主键重错误时,总是执行ROLLBACK释放获得的排他锁。

  尽管通过上面的设计和优化等措施,可以大减少死锁,但死锁很难完全避免。因此,在程序设计中总是捕获并处理死锁异常是一个很好的编程习惯。

  如果出现死锁,可以用SHOW INNODB STATUS命令来确定最后一个死锁产生的原因和改进措施。

  在每行记录后面保存两个隐藏的列来实现,一个保存了行的创建时间(行的版本号),一个保存了行的过期时间。这两个不是时间,而是系统版本号

  select查找符合以下两个条件的数据:创建时间早于当前事务版本的数据行。行的删除版本号要么未定义要么大于当前事务版本号

  update:插入一条记录,保存当前系统版本号作为创建时间,同时保存当前系统版本到原来行作为删除标志

  MVCC只在REPEATABLE READ和READ COMMITTED级别下工作。而READ UNCOMMITED总是读取最新数据行。而SERIALIZABLE会对所有读取的行都加锁

  1、什么是事务事务是一条或多条数据库操作语句的组合,具备ACID,4个特点。原子性:要不全部成功,要不全部撤销隔离性:事务之间相互独立,互不干扰一致性:数据库正确地改变状态后,数据库的一致性约束没有被...博文来自:通往架构师的成长学习之路

  在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。锁分类①、按操作划分:DML锁,D...博文来自:身是菩提树,心如明镜台

  前言    1.乐观锁和悲观锁与数据库的隔离级别的关系或者两者使用的场景是什么?    我在网上所能找到的答案,帮助个人的理解。    答案一:事务隔离级别是并发控制的整体解决方案,其实际上是综合利用...博文来自:yinni11的博客

  数据库事务隔离级别与数据库锁:在数据库中,存在四种数据库隔离级别,分别是1、readuncommited在当前事务未提交的时候其他事务能够读到当前事务写的内容,这种隔离级别会导致脏读。其具体的加锁方式...博文来自:u012068323的博客

  一、事务简介1、事务简介事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作。2、事务的特性A、原子性(Atomicity)表示组成一个事务的多个数据库操作是一个不可分隔的原子单元,...博文来自:ranyuangang的博客

  这个问题之前遇到过一次,但是由于不知道导致锁表的原因,也没细想,就知道表被锁了,然后让别人把表给解锁了。但是前天的一次操作,让我亲眼见证了导致锁表的过程,以及如何给lock的表解锁。1.导致锁表的原因...博文来自:zhanglf02的博客

  mysqlInnodb解决各个不同事物隔离级别所产生问题的方法。博文来自:黑伯的博客小站

  MySQL数据库的事务隔离级别相信很多同学都知道.大家有没有想过它是如何实现的呢?带着这些问题我翻阅了相关数据库的书籍和资料,把我的理解写下来.一:事务隔离级别mysql数据库的隔离界别如下:1,RE...博文来自:北漂码农

  数据库的事务有几种特性,例如一致性和隔离性,一般通过加锁来实现。同时数据库又是一个高并发的应用,如果加锁过度或者不当将严重影响性能。数据库提供了几种隔离级别来供选择,本文通过解析InnoDB的加锁机制...博文来自:ends coding life

  因为数据库中的事务是具有隔离性的,一个事务的运行不应该影响另一个事务的运行。但是因为并行机制的存在,会有一系列的问题:脏读:事务A修改了一个数据,但未提交,事务B读到了事务A未提交的更新结果,如果事务...博文来自:Mr.Phoebe的专栏

  MySQL数据库锁介绍1. 锁的基本概念当并发事务同时访问一个资源时,有可能导致数据不一致,因此需要一种机制来将数据访问顺序化,以保证数据库数据的一致性。锁就是其中的一种机制。我们可以用商场的试衣间来...博文来自:he_xiao123的博客

  一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MyS...博文来自:wppi的博客

  一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MyS...博文来自:wzhwangzhuohui的博客

  MySQL数据库锁介绍1. 锁的基本概念当并发事务同时访问一个资源时,有可能导致数据不一致,因此需要一种机制来将数据访问顺序化,以保证数据库数据的一致性。锁就是其中的一种机制。我们可以用商场的试衣间来...博文来自:LeoChen的专栏

  一.什么是数据库隔离级别?  ANSI(美国国家标准学会:AMERICANNATIONALSTANDARDSINSTITUTE)在多个事务并发的时候能够正确的处理数据所定义的规范。事务隔离级别越高,数...博文来自:李子的博客

  网上大多数关于隔离级别的文章都是讲了2事务中的问题以及隔离级别可以解决的问题,我这次想看看数据库底层是如何实现隔离级别的。不过还是先来回顾一下隔离级别以及可能发生的问题。1.脏读:指的是一个事务的读操...博文来自:u010900754的专栏

  这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢。参考Innodb中的事务隔离级别和锁的关系MySQL四种事务隔离级的说明MySQL引擎InnodbMySQL...博文来自:u013349237的专栏

  本文为本人学习极客时间《MySQL实战45讲》的学习笔记。原文链接:博文来自:pcwl_java的博客

  mysql锁是mysql为了保证数据的正确性(只允许一个进程操作数据)而做的一系列操作1:mysql锁分类? 按照锁粒度分为:行锁,页级锁,表锁 常用的存储引擎中:innodb默认支持的是行锁,5.6...博文来自:php_dandan的博客

  锁表的原因:当多个连接(数据库连接)同时对一个表的数据进行更新操作,那么速度将会越来越慢,持续一段时间后将出现数据表被锁的现象,从而影响到其它的查询及更新。例如:存储过程循环30次更新操作(cyc...博文来自:Willian的博客屋

  原文地址:锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协...博文来自:坦GA的博客

  锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一...博文来自:一个手艺人

  遗留的一个目,偶尔会出现一些比较诡异的问题,最近腾出功夫经过排查发现是由死锁引起,下面是一张利用SQLServerProfiler追踪到的死锁状况图:看到这张图,说实话真是醉了,一个业务上还...博文来自:袁伏彪 —— 共享,共赢

  广告:            乐观锁:(selectforupdate)先查询要更新的记录,做个标记,更新的时候根据标记条件更新,返回是否有数据更新,如果失败。表示被其他人或事务更新过了,捷足先登...博文来自:caidimin的博客

  什么是脏读,不可重复读,幻读1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。2. 不可重复读...博文来自:mxyue0208的专栏

  一、索引使用索引为什么可以加快数据库的检索速度啊? 为什么说索引会降低插入、删除、修改等维护任务的速度。 索引的最左匹配原则指的是什么? Hash索引和B+树索引有什么区别?主流的使用哪一个比较多?I...博文来自:zjp的博客

  在mysql中建一个表,这个表主键唯一。一个系统去处理业务时就往数据库表中添加数据。两个系统的业务ID是一致的,业务ID又是唯一主键,所以当一个系统添加数据时,另一个系统是无法往表中添加数据的。插入数...博文来自:大圣即大盗

  声明:此文章摘自博客园,如有侵权,联系我删除!!!  mysql数据库的锁有多少种,怎么编写加锁的sql语句一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问...博文来自:u010730870的博客

  转自:这哥们写太好了,转过来收藏一下,顺便改几个错别字。。前言为了...博文来自:zzy2011266的专栏

  当数据库中多个事务(Transaction)处理同一数据时,就会出现并发的问题,也就是需要解决数据库隔离性的问题(isolation)。  数据库的事务操作主要会碰到以下几类问题:  1.脏读:脏读指...博文来自:yangtianyu1218的专栏

  前言写篇文章来巩固自己学习的知识。通过写文章,本着一颗不误导别人、不混过去的心,找出那些自己看似懂了的问题。这篇文章主要讲的是事务、隔离级别、锁、封锁协议之间的关联。我觉得最重要的是要将这些知识关联起...博文来自:LLLLEE 的博客

  1.事务的ACID特性:(1)原子性Atomicity:事务所包含的数据库操作要么都做,要么都不做(2)一致性Consistency:数据库中只包含执行成功的结果,每个用户看到的数据是一致的(3)隔离...博文来自:技术人生

  MySQL的四种事务隔离级别事务的四大特性ACID1.原子性(Atomicity):一个事务要么全部执行,要么全部不执行,如果执行过程中出现异常则回滚;犹如化学中的原子一样具有不可分割性(别跟我较真啊...博文来自:的博客

  锁:为了支持对共享资源进行并发访问,提供数据的完整性和一致性不同的数据库对锁的实现方式不同,innodb的锁实现和oracle类似,提供一致性的非锁定读,行级锁支持。(行级锁没有额外的开销,可以同时得...博文来自:formydream的博客

  1、什么是数据库锁   锁是计算机协调多个进程或线程并发访问某一资源的机制    在数据库中,除了传统的计算资源(CPU,RAM,I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发...博文来自:Emily的博客

  MySQL中的锁概念Mysql中不同的存储引擎支持不同的锁机制。比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁,...博文来自:hsd2012的专栏

  文章分为以下几个要点问题描述以及解决过程MySQL锁机制数据库加锁分析下面讨论的都是基于MySQL的InnoDB。0.问题描述以及解决过程因为涉及到公司利益问题,所以下面很多代码和数据库信息,进行了缩...博文

  来总结一下mysql数据库锁的使用.目前,我所知道的数据库锁就是悲观锁和乐观锁.一般用到数据库锁的场景都是对数据的准确性比较高的,比如钱等.由于水平有限,这里不研究原理,只看看怎样去使用数据库锁.首先...博文来自:dressrosa

  为了解决数据库并存在的一些问题,数据库提供了非常复杂的隔离级别。MySQL隔离级别有四种:READUNCOMMITTED(未提交读)、READCOMMITTED(提交读)、REPEATABLEREAD...博文来自:码农博士的博客

  数据库隔离级别有四种,应用《高性能mysql》一书中的说明: 然后说说修改事务隔离级别的方法:1.全局修改,修改mysql.ini配置文件,在最后加上1#可选参数有:READ-UNCOMMITTED,...博文来自:aggrelxf的专栏

  事务是一组原子性的查询单元,这组查询单元执行要么全部成功,要么全部失败。如果其中有任何一条语句因为崩溃或者其他原因导致失败,那么事务中的其他查询也会随之失败。ACID特性MySQL中事务必须满足ACI...博文来自:的博客

  帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...博文来自:小雨同学的技术博客

  1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包...博文来自:专注、专心

  Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: ; ...博文来自:Hongyang

  最近正好又用到 DM368 开发板,就将之前做的编解码的项目总结一下。话说一年多没碰,之前做的笔记全忘记是个什么鬼了。还好整理了一下出图像了。不过再看看做的这个东西,真是够渣的,只能作为参考了。项目效...博文来自:不积跬步,无以至千里

  在网上所搜索很多操作Word的都是用VC,VS2010做了一些修改,添加操作的方式和用法都有所变化。 要操作Word必须先添加对应的类,如下图在工程中添加操作类(TypeLib中的 MFC类): ...博文来自:xiangjianbo127的专栏

  PopWindow 对Android的底部弹窗、顶部弹窗菜单及自定义界面的使用封装。 GitHub:一、介绍 主要是用于在...博文来自:HMYANG314的专栏

  【接上篇】         上述计算星期的方法虽然步骤简单,但是每次都要计算两个日期的时间差,不是非常方便。如果能够有一个公式可以直接根据日期计算出对应的星期岂不是更好?幸运的是,这样的公式是存在的。...博文来自:oRbIt 的专栏

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量...博文来自:我走小路的博客

  Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...博文来自:u011860731的专栏

  一、组合模式适用场景把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式对部分对象和整体对象进行管理。二、组合模式结构 抽象构件(Conponent)角色:所有类的共有接口,定义了叶子和...博文来自:小小本科生成长之路

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:Websites

  此处仅以VS2010为例,详细说明一下如何在VS环境下生成和使用C++的静态库与动态库。Qt下生成和使用静态和动态库后续再讲。 本文仅供初学者参考,如果有问题欢迎大家指正。        首先简单地理...博文来自:luyan的博客

  对象的创建和销毁在一定程度上会消耗系统的资源,虽然jvm的性能在近几年已经得到了很大的提高,对于多数对象来说,没有必要利用对象池技术来进行对象的创建和管理。但是对于有些对象来说,其创建的代价还是比较昂...博文来自:赶路人儿

  command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行 sql仅可执行DDL、select、DML等...博文来自:Ape55的博客

  SQL Server查询和检索操作。 一道例题学会查询和检索操作: 1、在SQL SERVER 2008上附加teaching数据库,其中三张表的含义解释如下: 学生表dbo...博文来自:J.Anson的博客

  转载请标明出处: ; 本文出自:【张鸿洋的博客】 一 概述 上周一...博文来自:Hongyang

  HOF(Histogramsof Oriented Optical Flow)与HOG类似,是对光流方向进行加权统计,得到光流方向信息直方图。通常用于动作识别中。 不懂HOG特征的,这篇文章讲得很清...博文来自:LX

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:九野的博客

  花了几天,终于把matlab版的人脸检测运行成功了,虽然正确率不是很高,看着各种论文上的人脸检测正确率都出奇的高,我是不怎么相信的,有的论文连基于平均脸的人脸检测正确率都能达到98%,汗啊~~  也许...博文来自:海海人生

  原文地址:反置页表作者:hilg 在分页系统中为每个进程配置一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。在现代计算机系统中通常允许一个进程的逻辑地址空间非常大,因此就有很多页表...博文来自:月光轩辕的专栏

  在MATLAB中,可以注释一段程序。 使用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 ...博文来自:知识小屋

  :老哥,我用你的办法。。ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB还是这个报错。设置断点,自定义的handler没有执行进去啊。

http://funnyland.net/fengsuolidu/202.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有