read

事务的隔离级别

╄→尐↘猪︶ㄣ 提交于 2019-11-27 15:57:05
一、在多事务在在相近的时间由多人处理时,此时往往存在一系列并发问题: 1、 脏读(Drity Read) 已知有两个事务 A 和 B, A 读取了已经被 B 更新但还没有被提交的数据,之后, B 回滚事务, A 读取的数据就是脏数据 2、 不可重复读(Non-repeatable read) 已知有两个事务A 和 B , A 多次读取同一数据, B 在 A 多次读取的过程中对数据作了 修改 并提交,导致 A 多次读取同一数据时,结果不一致 3、 幻读(Phantom Read) 已知有两个事务A 和 B , A 从一个表中读取了数据,然后 B 在该表中 插入 了一些新数据,导致 A 再次读取同一个表 , 就会多出几行,简单地说,一个事务中先后读取一个范围的记录,但每次读取的纪录数不同,称之为幻象读 注:不可重复读与幻读 区别就是在读取数据是另一方对数据尽行了何种修改: 修改 和 插入 二、处理方法: 事务隔离权限 根据实际需求,通过设置数据库的事务隔离级别可以解决多个事务并发情况下出现的脏读、不可重复读和幻读问题,数据库事务隔离级别由低到高依次为 Read uncommitted、Read committed、Repeatable read和Serializable 等四种。数据库不同,其支持的事务隔离级别亦不相同: MySQL数据库支持上面四种事务隔离级别

关一Socket得到的InputStream,read方法最后一直阻塞的问题

北战南征 提交于 2019-11-27 15:19:08
今天在尝试使用protobuf在服务端和android进行数据转递和解析时遇到一个小问题,这里记录一下。大概的场景是pc与android使用socket通信,pc为服务端,android向服务端发送请求后,服务端将protobuf对象返回给android端。android端得到InputStream后转换为byte[]再转换为protobuf对象。出现的问题就是InputStream在转换为byte[]部是发生阻塞,不能成功。 socket client端在接收到服务端的InputStream后,要将其转换为byte[],通常使用的方法大致如下: public static byte[] toByteArray(InputStream input) throws IOException { ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); byte[] buff = new byte[1024]; int rc = 0; while ((rc = input.read(buff, 0, 1024)) > 0) { swapStream.write(buff, 0, rc); } byte[] bytes = swapStream.toByteArray(); return bytes; } 但是

Shell脚本(八):read读取控制台输入

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-27 15:18:36
1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符; -t:指定读取值时等待的时间(秒)。 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 [atguigu@hadoop101 datas]$ touch read.sh [atguigu@hadoop101 datas]$ vim read.sh #!/bin/bash read -t 7 -p "Enter your name in 7 seconds " NAME echo $NAME [atguigu@hadoop101 datas]$ ./read.sh Enter your name in 7 seconds xiaoze xiaoze 来源: https://blog.csdn.net/Dove_Knowledge/article/details/99690718

python操作文件

穿精又带淫゛_ 提交于 2019-11-27 15:05:52
读写文件操作   1.1读写流程 : 打开文件。 f = open("文件名", "打开方式", encoding="编码方式") 读写  content = f.read() f.write(str)   3.关闭文件 f.close() 1.2读操作 read(size),读取指定大小的内容。调用read()会一次性读取文件的全部内容。 f = open('123.txt',mode='r') content = f.read() f.close() readline(),每次读取一行,并且自带换行功能,每行末尾读到\n readlines(),一次读取所有文件的内容,返回一个list for 循环读取。file 句柄是一个可迭代的对象,可以循环读取文件中的内容,每次读一行  f = open('123.txt',mode='r') for content in f: print(content) 1.3写操作 write(str) f = open('123.txt',mode='w') f.write('HelloWorld') f.close() wirtelines(list) f.writelines(['a','b\n','c']) 1.4文件权限   1.4 with读取 可以不用手动关闭文件,会自动关闭文件 with open('log.txt',mode='r

安装ubuntu/win7后选择win7出现 a read disk error occurred

房东的猫 提交于 2019-11-27 14:30:25
(本人百度ID:_铭_轩_)安装ubuntu/win7双系统后重启电脑ubuntu正常进入但选择win7 loader会提示:a read disk error的错误信息,无法进入win7系统,之前自己折腾双系统时也遇到过这情况,记得使用ultraiso做的U盘启动安装的ubuntu,网上也没有太多这问题的解决方法,最后偶然在ubuntu社区看到个方法,感觉应该适用于这个问题,试了一下~Ok了~这里贴出来分享给大家(在百度知道上我也贴了的说,当时自己解决没多久就发现也有人遇到这问题了),let's do it~ 开机进你的ubuntu win+alt+T进入shell终端 在shell下: sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update 完成后: sudo apt-get install -y boot-repair && boot-repair 软件会自动运行的。 这是一款linux下的boot修复软件,Boot-Repair,执行上面的2行代码后软件运行,选择recommended repair(推荐修复),默认下一步下一步就可以了,完成后reboot依然进入grub,但你现在再选择win7 loader时你会发现平稳进入win了^_^。双系统引导就修复好了。

shell脚本的for循环与read

删除回忆录丶 提交于 2019-11-27 13:17:27
交互输入与for语句 1、交互输入 read Python中用input()函数,进行输入; read命令同时可以定义多个变量值;而输入的内容默认以空格为分隔符,将值输入到对应的变量中; 如果默认值过多,最后所有的值都会被赋予给最后一个变量; 如果默认值过少,多余的变量则为空值; 示例: read a b c aa bb cc read如何输入: echo "请输入一个目录:" 我们需要 echo -n 取消换行符号 echo "请输入一个目录:";read 变量 请输入一个目录:\etc 常用参数: -p read -p "请输入一个目录:" 变量 -t 定义超时时间 read -t 5 -p "请输入一个目录:" 变量 脚本默认值 [ ! -n $filename ] && filename="zhangjie" 输入内容------------------------------------------- | | 输入是否正确---------- 没有输入------------------------------ | | | | 正确 不正确,给提示 提示必须输入 给出默认值 练习:输入一个设备文件,输出这个设备文件的基本信息; #!/bin/bash # read -t 5 -p "输入一个设备文件名:" devname [ -z $devname ] && fdisk

mysql事务回滚机制概述

烂漫一生 提交于 2019-11-27 13:06:34
应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码; 2 连接数据库,验证密码; 3 验证成功,获得用户信息,比如存款余额等; 4 用户输入需要取款的金额,按下确认键; 5 从后台数据库中减掉用户账户上的对应金额; 6 ATM吐出钱; 7 用户把钱拿走。 对于上面的取钱这个事情,如果有一步出现错误的话,那么就会取消整个取钱的动作,但是如果在第5步,系统后台已经把钱减了,但是ATM机没有取出来,那么就应用到mysql中的事务。简单地 来说,就是取钱这7步要么都完成,要么就啥也不做,在数据库中就是这个道理。 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤销,在事务中,每个正确的原子 操作都会被顺序执行,直到遇到错误的原子操作。回滚的意思其实即使如果之前是插入操作的话,那么会执行删除之前插入的记录,如果是修改操作的话,那么会执行将update之前的记录还原。 因此,正确的原子操作是真正被执行过的,是物理执行。 事务是由一条或者多条sql语句组成,在事务的操作中,要么这些sql语句都执行,要么都不执行。 事务的ACID特性:原子性,一致性,隔离性,持久性。 在当前事务中确实能看到插入的记录,最后只不过被删除了,但是auto_increament不会删除而是改变值

37 python - 文件读写

别说谁变了你拦得住时间么 提交于 2019-11-27 13:05:18
1. 写数据(write) 使用write()可以完成向文件写入数据 demo: f = open ( 'test.txt' , 'w' ) f . write ( 'hello world, i am here!' ) f . close ( ) 运行现象: 注意: 如果文件不存在那么创建,如果存在那么就先清空,然后写入数据。 2. 读数据(read) 使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据 demo: f = open ( 'test.txt' , 'r' ) content = f . read ( 5 ) print ( content ) print ( "-" * 30 ) content = f . read ( ) print ( content ) f . close ( ) 运行现象: 注意: 如果open是打开一个文件,那么可以不用谢打开的模式,即只写 open(‘test.txt’) 如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的 3. 读数据(readlines) 就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。 #coding=utf

二维线段树->树套树

时光怂恿深爱的人放手 提交于 2019-11-27 13:03:14
  现在上真正的二维线段树 毕竟 刚刚那个是卡常 过题我们现在做一个更高级的做法二维线段树。 大体上维护一颗x轴线段树 然后在每个节点的下方再吊一颗维护y轴的线段树那么此时我们整个平面就被我们玩好了。 这样形成二维线段树比刚才的要 合理多了。 写起来 不免有点蒙蔽...然后突然就顿悟了 其实每次我们对于区间的修改大概就是先把x属于x轴的那一段区间给拎出来然后在那个区间之中把那个区间的y轴线段树给修改掉。 还是刚刚那道题 这次是MLE 了 理论上二维线段树空间复杂度 (MAXN<<2)^2这个复杂度 可是正中下怀的MLE了 开小了一点就可以过了。 //#include<bits/stdc++.h> #include<iostream> #include<iomanip> #include<ctime> #include<cstring> #include<string> #include<ctime> #include<cctype> #include<cstdio> #include<utility> #include<queue> #include<stack> #include<deque> #include<map> #include<set> #include<bitset> #include<vector> #include<algorithm> #include

[PHP] 自定义保存Session数据

橙三吉。 提交于 2019-11-27 12:46:15
简介: 在PHP开发偶尔会遇到需要保存Session数据到数据库的要求,大多也是为了实现Session共享,自己简单的实践了PHP的自定义保存Session功能,用起来还是非常方便。 原型: 1.session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc [, callable $create_sid [, callable $validate_sid [, callable $update_timestamp ]]] ) : bool 2.session_set_save_handler ( object $sessionhandler [, bool $register_shutdown = TRUE ] ) : bool 实践: 1.调用session_start()之后,就会执行open → read → write → close 2.write是PHP脚本执行完毕之后调用的,就是保存当前Session的数据 3.read就是相当于恢复Session数据,一次性读入到$_SESSION变量中 实例: class FileSessionHandler { private