work

mysql事务

半城伤御伤魂 提交于 2019-11-29 10:15:33
本篇文章主要从事务的分类,操作,事务隔离级别几个方面进行阐述。 一、概述 事务是数据库系统区别文件系统的一个重要特性。 事务会把数据库从一种状态转为另一种状态。要么都修改,要么都不改。 事务可以是一个简单的sql,也可以是一个复杂的sql,事务是访问并更新数据库中各个数据项的一个程序执行单元 事务的四大特性为ACID,而innodb存储引擎完全符合ACID: 1、原子性(automicity):指整个数据库事务不可分割。要么都执行,要么都不执行。 2、一致性(consistency):指事务将数据库从一种状态转为另一种一致的状态,在事务开始前和结束后,数据库完整约束没有被破坏。 3、隔离性(isolation):(其他称呼:并发控制,可串行化,锁)指各个读写事务对象对其他事务操作相互分离,不可见。 4、持久性(durability):指事务完成后,其结果是永久的,即使机器宕机,也能够恢复。 二、提交方式 1.显式开启和提交。 使用begin或者start transaction来显式开启一个事务,显式开启的事务必须使用commit或者rollback显式提交或回滚。几种特殊的情况除外:行版本隔离级别下的更新冲突和死锁会自动回滚。 在存储过程中开启事务时必须使用start transaction,因为begin会被存储过程解析为begin...end结构块。 2.自动提交。

Android进阶AIDL使用自定义类型

天大地大妈咪最大 提交于 2019-11-29 09:15:27
原文首发于微信公众号:jzman-blog 上篇文章 中主要介绍从 AIDL 的使用方式以及 Android 开发中不同进程之间的通信,遗留的问题是如何在 AIDL 中使用自定义类型,具体步骤如下: 创建自定义类型 声明自定义类型 定义与自定义类型相关的业务 重写业务实体类 远程调用 验证 AIDL 1. 创建自定义类型 自定义类型传输的就是一个实体对象,这个实体类必须实现 Parcelable 接口,具体如下: // 自定义类型 public class Work implements Parcelable { private String title; private String content; // getter、setter、Parcelable 省略 } 2. 声明自定义类型 创建一个 .aidl 文件声明刚才定义的类型,注意与具体业务 .aidl 文件的不同,声明具体如下: // 在.aidl文件中声明自定义类型 package com.manu.aidldemo; parcelable Work; 3. 定义与自定义类型相关的业务 在定义具体业务的 .aidl 文件中定义与自定义类型相关的业务,具体如下: // Declare any non-default types here with import statements import com.manu

在docker上编译openjdk8

余生长醉 提交于 2019-11-29 08:18:34
以前曾经试过在VMware上安装linux,再在linux上编译openjdk8,但是每次都不顺利,例如linux环境,预装依赖软件,openjdk源码的选择等环境都会遇到问题,一旦失败再重新开始挺费时间的,现在用docker就省事多了,镜像和容器的创建和删除都比较简单干净,专心做好Dockerfile就行,下面我们一起来实践一下吧。 本次实战用到的所有文件,已经打包到github上,路径是:https://github.com/zq2599/centos7_build_openjdk8 ,欢迎您来使用(git clone git@github.com:zq2599/centos7_build_openjdk8.git) 本次编译实战的基本步骤如下: 编写的Dockerfile中要做的如下的事情: 安装依赖的软件; 把openjdk的源码复制到镜像中; 在编写Dockerfile之前要做三个重要的选择,如下: linux:我选择了centos7,之前试过ubuntu16.04,但是在configure的时候提示"freetype"没有安装,我按照提示去装了,再次configure的时候继续提示"freetype"没有安装......(此问题现在还没解决,如果您解决过相同问题,请您告诉一下解决方法,谢谢了!) openjdk源码,这次要编译的是openjdk8,源码的下载地址在 这里

08.构建根文件系统

元气小坏坏 提交于 2019-11-29 07:48:43
 终于自动挂载文件系统成功了!!!出错的地方两个!!!   第一,恢复出厂设置一定要用eop下载uboot,dnw下载的不行!!!最后记得erase nand params!!   第二,set bootargs noinitrd root=/dev/nfs nfsroot=202.193.61.195:/work/nfs_root/first_fs ip=202.193.61.196:202.193.61.195:202.193.61.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0   参数解读:  nfsroot=202.193.61.195: ubuntu ip地址  /work/nfs_root/first_fs要挂载的目录  ip=202.193.61.196: 单板ip(恢复出厂设置后记得先配置ip,手动挂载下能不能成功,可以成功的话再修改bootargs自动挂载!)  202.193.61.195: 依然是ubuntu ip !!!!!注意!!!  202.193.61.1: 网关,只要处于同一网段就好。  255.255.255.0:: 子网掩码  eth0: 网卡,一般都是0  off 是否自动配置 off就可以 下面回顾下整个过程! 最小根文件系统的组成:1.dev/console /dev

调试web worker (动态生成的worker)

流过昼夜 提交于 2019-11-29 06:25:26
1.在worker.js源码文件中 写下debugger关键词 2. F12打开控制台,重新刷新页面,加载worker.js文件(注意之前的缓存,chrome推荐使用 ctrl + F5 刷新) 3. 此时可以重新给debugger关键词所在行打上断点,刷新页面即可 4.调试结束后,不要忘记删除源码中的debugger关键词 来源: https://www.cnblogs.com/sangzs/p/11459191.html

33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

一曲冷凌霜 提交于 2019-11-29 04:42:02
10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2. service iptables save 会把规则保存到 /etc/sysconfig/iptables ~3. 把iptables规则备份到my.ipt文件中 ~4. iptables-save > my.ipt iptables-save重定向到这个文件中。名字可以随便起,也可以是.txt文件 ~5. 恢复刚才备份的规则 备份的规则,可能只有在恢复的时候能用到它。但是我们一重启服务器就想要加载规则,那么最好把规则备份到默认的 /etc/sysconfig/iptables里 ~6. iptables-restore < my.ipt 跟上面~4. 备份的重定向正好相反 ---------------------------------------------------------------------------------------------------------------------------------------------------- 10.20

Nexus OSS私服仓库的备份与迁移

僤鯓⒐⒋嵵緔 提交于 2019-11-29 04:17:14
背景 在上一篇博客 【Maven学习】Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库。下面是两个版本的Nexus OSS私服仓库的对比图。 老的Nexus OSS私服仓库 新的Nexus OSS私服仓库 明显老的Nexus OSS私服仓库的内容比新的Nexus OSS私服仓库的内容多。因此我们现在的工作就是将办公室上的老的Nexus服务器上的所有的数据迁移到机房的Nexus服务器。这一篇博客记录下整个Nexus OSS私服仓库的备份与迁移的过程。 一、老的Nexus OSS私服仓库备份 迁移中会遇到三个文件夹 , 打包、拉走 启动即可。 名称 目录名 重要配置文件 nexus主目录 nexus-2.6.4-02 conf/nexus.properties里面有sonatype-work的地址 sonatype-work目录 sonatype-work nexus/conf/nexus.xml里面有storage的地址 storage目录 storage 里面主要是各种程序的jar包等 迁移流程如下 首先我们在老的Nexus OSS私服仓库的这台Linux服务器上,查看相关的目录信息。 如上图所示,在老的Nexus OSS私服仓库的这台Linux服务器上, nexus主目录的地址为:/usr/local/nexus-2.12.1-01

python并发编程之多线程(实践篇)

孤人 提交于 2019-11-29 03:20:15
一.threading模块介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 1.开启线程的两种方式 #直接调用 import threading import time def run(n): print('task',n) time.sleep(2) t1 = threading.Thread(target=run,args=('t1',)) t1.start() #继承式调用 mport threading import time class MyThread(threading.Thread): def __init__(self,n,sleep_time): super(MyThread, self).__init__() self.n = n self.sleep_time = sleep_time def run(self): print('running task',self.n) time.sleep(self.sleep_time) print('task done,',self.n) t1 = MyThread('t1',2) t1.start() 2. 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 from threading import

并发编程之多线程

半腔热情 提交于 2019-11-28 22:27:48
并发编程之多线程 一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 二 开启线程的两种方式 #方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print('%s say hello' %name) if __name__ == '__main__': t=Thread(target=sayhi,args=('太白',)) t.start() print('主线程') #方式二 from threading import Thread import time class Sayhi(Thread): def __init__(self,name): super().__init__() self.name=name def run(self): time.sleep(2) print('%s say hello' % self.name) if __name__ == '__main__': t = Sayhi('egon') t

AS问题解决系列4—HAX is not working

五迷三道 提交于 2019-11-28 19:57:27
1. 问题描述 在Windows环境下Android Studio 1.2.2中运行时,出现下面错误信息: HAX is not working and emulator runs in emulation mode emulator: The memory needed by this AVD exceeds the max specified in your HAXM configuration. emulator: AVD RAM size = 1536 MB emulator: HAXM max RAM size = 512 MB emulator: You might want to adjust your AVD RAM size and/or HAXM configuration to run in fast virt mode. 在[2]中Android Studio初次运行过程中,已经创建好了 Android虚拟设备Nexus_5_API_22_x86, 但这个虚拟设备现在 运行时出现了手机界面,但是其中什么也没有显示出来。 2. 问题解决 什么是HAXM呢?它是Intel Hardware Accelerated Execution Manager (Intel® HAXM) 缩写,是Intel 为了在开发主机上 模拟 Android app运行