自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

橘子柚子橙子

一名测试小白

  • 博客(58)
  • 收藏
  • 关注

原创 adb基本命令(笔记)

准备工作:一、将Android设备处于开发者模式二、电脑与Android设备处于同一网段三、打开电脑cmd命令模式四、连接设备: adb常用命令 启动 adb server :adb start-server 停止 adb server :adb kill-server 连接设备:adb connect IP地址 (...

2019-03-27 14:13:05 377

原创 monky 学习笔记

简单概念介绍            monkey:是Android手机自带的一款工具,主要用来进行盲测、压力测试和冒烟测试夜神模拟器端口:62001连接模拟器:adb connect 127.0.0.1:62001基本指令运行monkey:adb shell monkey   -p 包名  count 属性-p  选择包名-v  指定日志级别(-v越多,日志越详细)未指定日志级别时打出的日志指定两...

2018-04-12 18:25:41 286

原创 SQL语句学习笔记☞select(待完善...)

1.查询整个表中所有语句:select *from tablename2.查询某一列或几列: select column1,column2... from tablename3.去重:SELECT DISTINCT column_name,column_nameFROM table_name;4.排序order by : (默认升序)SELECT col

2018-01-22 18:36:28 246

原创 mysql学习笔记

一些概念…….. 1.主键:唯一标识表中每行的列称为主键(一般把ID设为主键,主键不能为空,主键是唯一的)2.索引:是对表中一列或者多列的值进行排序的一种数据结构,可以加快检索速度详情请见: http://blog.youkuaiyun.com/iefreer/article/details/15815455一些SQL基本语句……  1.查看都有哪些数据库:show databases; 

2018-01-18 17:28:18 210

原创 链表的回文结构

/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/classPalindromeList{public:boolchkPalindrome(ListNode*A){Li...

2016-10-06 12:07:35 104

原创 自旋锁

1,spinlock介绍  spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致...

2016-09-10 22:26:08 161

原创 顺时针打印矩阵

vector<int>clockwisePrint(vector<vector<int>>mat,intn,intm){vector<int>ret;inti=0;intj=0;intstartx=0;...

2016-09-09 18:31:28 108

原创 grep常见选项及命令

-E 按Extended规范进行匹配--color 标记匹配颜色-i 忽略大小写匹配[fbl@wwwtest6_26]$echo"hello"|grep-i--color'HELLO'hello-q 安静匹配 即不输出内容[fbl@wwwtest6_26]$echo"hello"|grep-q--color'hello'[fbl@wwwt...

2016-06-26 15:56:58 126

原创 shell脚本应用小程序

1...100的求和非递归:#!/bin/bashreadnumcount=1sum=0val=""ret=""while[$count-le$num]doif[$count-eq$num];thenval=$countelseval=${count}'+'...

2016-06-19 18:43:47 132

原创 shell脚本字符串截取的多种方法

1、cut命令cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b第二,字符(characters),用选项-c第三,域(fields),用选项-fstr="abchyew2635"echo$str|cut-c6-9结果:yew22、# 号截取,删除左边字符,保留右边字符 var="helloworld"...

2016-06-16 20:40:37 195

原创 进度条---shell脚本版本

#!/bin/bashbar=""count=0clock=("|""/"'-''//')index=0while[$count-le100]doprintf"[%-100s][%d][%c]\r""$bar""$count""${clock[index]}"bar=${bar}"="(...

2016-06-16 17:17:46 132

原创 数据库索引、 触 发器及 事务

索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构。数据库索引好比是一本书前面的目录,能加快数据库的检索速度。索引的实现通常是B树及其变种B+树。建立索引的好处:加快对表中记录的查找或排序可以大大提高系统的性能。索引的缺点:创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加索引需要占物理空间,除了数据表占数据空间之...

2016-06-12 17:06:36 108

原创 网络端口号布局

端口分为物理端口和逻辑端口物理端口:集线器、交换机、路由器用于连接其他网络设备的接口逻辑端口:一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。分类:(1)公认端口(Well Known Ports):这类端口也称之为“常用端口”,编号从0到1024。它们紧密绑定于一些特定的服务。通常这些端口的通信明...

2016-06-12 17:05:32 173

原创 IO多路复用--select、 poll、 epoll的区别

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。IO多路复用适用如下场合:(1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。(2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。(3)如果一个...

2016-06-12 17:04:22 128

原创 I/O多路复用之select

select是用于监视多个文件描述符状态的变化的。即用来监视文件描述符读/写/异常状态是否就绪。函数原型:int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);select的几大缺点:(1)每次调用select,都需要把fd集合从用户态拷贝...

2016-05-23 19:54:47 106

原创 dup /dup2

dup 、dup2用于复制一个现存的文件描述符,当调用dup函数成功后,内核在进程中创建一个新的文件描述符,此描述符是当前可用文件描述符的最小数值。dup2可以用nwefd参数指定新描述符的数值,如果newfd当前已经打开,则先将其关闭在做dup2操作,如果oldfd等于newfd,则dup2直接返回newfd而不用户先关闭newfd再复制。1#include<...

2016-05-23 19:27:03 96

原创 进程间双向通信--sockpair

sockpair是一个套接字,可以用于网络通信,也可用于本机内进程间通信。sockpair类似于管道,只不过管道是用于单向通信的,只能一方读,一方写,。而想要用于进程间双向通信,就要pipe两次,创建两个管道。sockpair直接就可以实现进程间双向通信。1#include<stdio.h>2#include<unistd.h>...

2016-05-23 19:22:15 163

原创 基于UDP协议的进程间通信

UDP协议的主要特点:UDP是无连接的UDP使用尽最大努力交付UDP是面向报文的没有拥塞控制支持一对一、一对多、多对一、多对多的交互通信UDP首部开销小UDP协议是无连接的并且面向数据块的。所以client端不需要与server端进行连接,直接发送消息。server:1#include<stdio.h>2#include<stdlib.h&gt...

2016-05-23 19:18:37 433

原创 基于TCP协议的进程间通信

TCP协议是应用在传输层的协议。是一种面向连接的、可靠的协议。TCP协议的特点:1)面向字节流。2)TCP是面向连接的运输层协议3) 每一条TCP链接只能有两个端点4)TCP提供可靠交付的服务5)TCP提供全双工通信根据TCP协议三次握手,server一直处于监听状态,等接受到client的请求连接(connect)信号,accept该连接。server:1#i...

2016-05-23 19:05:35 170

原创 TCP协议三次握手与四次挥手

TCP协议是应用在传输层的协议。是一种面向连接的、可靠的协议。TCP协议的特点:1)面向字节流。2)TCP是面向连接的运输层协议3) 每一条TCP链接只能有两个端点4)TCP提供可靠交付的服务5)TCP提供全双工通信下面来谈一下TCP运输连接的建立和释放TCP连接的建立采用客户服务器模式(CS模式)主动发起连接建立的应用进程叫做客户(client),而被动等待连接建立的应用进...

2016-05-23 18:44:32 98

原创 内存的动态开辟

在C语言中,对于一些数组的大小有时候我们并不知道需要开辟多大的一块内存空间,所以这时候我们就需要动态的去开辟一块内存空间。C语言中动态开辟内存的函数有malloc、calloc、realloc、释放内存的函数有freeC++中可以用运算符new来开辟内存,用delete释放内存。malloc:原型:void *malloc(unsigned int num_bytes);功能...

2016-05-10 20:18:13 75

原创 浅谈c++静态绑定、动态绑定

多态:指同一个实体同时具有多种形式,即一个名字可以具有多种语义。函数重载、类模板、函数模板等都属于多态性。通俗来说就是接口的多种不同实现方式。函数绑定:就是函数的入口地址同函数调用相联系的过程。分为静态绑定和动态绑定。两者的区别:静态绑定在程序执行前完成,由编译系统或操作系统装入程序计算函数的入口地址;而动态绑定则在执行过程中完成,由程序自身计算函数的入口地址。静态绑定:在编...

2016-05-09 20:47:16 154

原创 守护进程

守护进程(精灵进程daemon):是运行在后台的一种特殊进程,它一直运行在后台,不受用户登录和注销的影响。所以它是独立于终端的并且周期性地执行某种任务或等待处理某些发生的事件。不能直接和用户交互。因此不允许往终端打印消息。crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工...

2016-05-08 16:14:28 77

原创 线程安全与可重入函数

线程安全:如果多线程同时运行同一代码块的结果每次都和单线程运行的结果一样,则就是线程安全的◆线程不安全的本质原因是资源共享。所以不使用任何共享数据的线程是安全的◆使用全局变量的函数是非线程安全的。◆使用静态数据或其他共享资源的函数,必须通过加锁的方式来使函数实现线程安全。◆可以通过线程同步将一个不安全线程转变成安全的可重入函数:可重入函数主要用于多任务环境中,即它可以被多个...

2016-05-05 19:03:12 92

原创 信号SIGCHLD

SIGCHLD是子进程退出后发送给父进程的信号。下面的程序可以显式的看出子进程退出后发送给父进程的信号是SIGCHLD。可以用SIGCHLD的自定义动作来wait子进程资源。这样每次子进程退出后,父进程收到SIGCHLD信号就会wait子进程1#include<stdio.h>2#include<stdlib.h>3#incl...

2016-05-05 15:52:34 89

原创 回调函数

回调函数:是利用函数指针来实现的。回调函数就是自己写的一个函数,将自己的地址作为参数传递给另一个函数。回调函数可以是一个普通函数,只有当它被当做参数传递给被调用函数时才称作回调函数#include<stdio.h>#include<stdlib.h>typedefint(*f)(int,int);intadd(inta,intb)//...

2016-05-01 21:18:13 79

原创 函数指针、指针函数、指针数组、数组指针

函数指针是一个指向函数的指针,即它是一个指针变量,只不过这个指针指向一个函数。函数指针的定义:返回值类型 (*指针变量名)(形参列表);int (*fun)(int a,int b);注意:1)声明函数指针时必须和要指向的函数返回值以及参数类型保持一致,否则会出错。2)指向函数的指针没有++和--运算。3)函数指针指向的函数必须是被定义了并且分配了内存的,否则它将指向一个空...

2016-04-28 17:10:30 128 1

原创 信号的产生、捕捉 及竟态条件

信号:通俗来说,就是使操作系统执行某些指定动作。操作系统中的信号一共有62中,通过kill-l命令可以查看这些信号,其中1-31号为普通信号,33-64号为实时信号。信号的产生:1)键盘指令:如发送Ctrl+c 终止该进程,只能用于前台进程,后台进程需要通过 ps aux|grep 进程名 找到该进程,再用 kill -信号索引 进程号 终止进程。2)系统函数调用:kill...

2016-04-28 13:42:37 150

原创 关键字-----static 、const、inline、volatile....

static:作用:1)未被初始化的静态变量初始化为0。如果一个全局或局部变量加上关键字static,则它的默认初始化值就为0。2)隐藏(链接属性 )。如果一个变量或函数加上关键字static,则它只能在本文件内有效,其他文件是不能访问它的,从而有效的保护了改变量或函数不会被其他文件修改。3)使局部变量内容持久化 如果一个局部变量被声明为静态的,则它的存储位置就从栈变成了静态...

2016-04-24 17:31:12 152

原创 线程同步与互斥--------信号量(semaphore)

该信号量是POSIX版本的。是用于线程间同步与互斥的。和进程间的信号量类似,都是管理临界资源的,都有P、V操作,只不过它的P、V操作是用下面的函数接口实现的int sem_wait(sem_t *sem);P操作 资源 -1;申请资源int sem_post(sem_t *sem);V操作 资源 +1;释放资源1#include<stdio.h>2...

2016-04-24 15:04:57 80

原创 读写者问题------读写锁

读写者问题是一类比较特殊的问题。可以允许多个读者同时读,但不允许多个写者或者写者和读者同时操作。所以需要保证读者和写者之间的同步与互斥关系,以及多个写者之间的互斥关系。读写锁是一种自旋锁:自旋锁是当一个线程没有申请资源成功,不会等待,而是一直在进行循环判断是否锁被释放。1#include<stdio.h>2#include<pthread.h&...

2016-04-24 14:47:31 97

原创 线程 同步与互斥-------消费者 生产者模型

线程互斥用互斥锁,线程的同步则用到条件变量。条件变量是用来描述线程间同步的。下面以生产者、消费者为例生产者和消费者之间存在同步与互斥的关系。生产者之间、消费者之间存在互斥的关系#include<stdio.h>#include<pthread.h>#include<stdlib.h>staticinti=...

2016-04-21 18:22:37 134

原创 智能指针

智能指针:是存储指向动态分配对象指针的类。能够在适当的时间自动删除指向的对象。下面是它的三种实现://autoptrtemplate<classT>classAutoptr{public: Autoptr(T*ptr) :_ptr(ptr) {} ~Autoptr() { if(_ptr) { delete_pt...

2016-04-19 21:02:13 65

原创 进程 线程 的区别

线程相当于进程的一个执行流,多个线程共享同一进程的地址空间以及共享以下进程资源和环境:1. 文件描述符表2. 每种信号的处理方式(SIG_IGN、SIG_DFL或者自定义的信号处理函数)3. 当前工作目录4. uid、gid线程独立的资源:1. 线程id2. 上下文,包括各种寄存器的值、程序计数器和栈指针3. 栈空间4. errno变量5. 信号屏蔽字6. 调度优先级线程与进...

2016-04-19 14:48:40 79

原创 线程同步与互斥 以及死锁问题

当多个线程同时访问共享数据时,可能会由于线程间不断切换导致操作系统的多次调用,从而引起访问冲突。想要解决这个问题,我们可以为这份共享数据加入互斥锁。互斥锁的内部实现:lock:movb $0 %alxchgb %al mutex //交换寄存器al和mutex中的内容 是原子的if(al>0) retuen 0else...

2016-04-17 14:40:38 112

原创 多线程的控制与分离

线程:相当于进程的一个执行流。一个进程可以有多个执行流,也就是说一个进程可以有多个线程。一个只有一个执行流的进程也可以看做线程。线程是操作系统调度和分派的基本单位。 虽然一个进程中的多个线程共享一份地址空间,但每个线程也有各自私有的资源,即每个线程即是相互联系的又相互独立。线程终止:从线程函数return线程函数调用pthread_exit();调用函数pthread_ca...

2016-04-16 16:46:00 100

原创 求二进制中1的个数

#include<stdio.h>#include<stdlib.h>//方法一:intNumberof1(intn){ intcount=0; while(n) { if(n&1) count++; n=n>>1;//位操作比乘除运算效率高。 } returncount;...

2016-04-15 14:40:05 77

原创 semop SEM_UNDO

当操作信号量semop时 sem_flg可以被设置为0或SEM_UNDOSEM_UNDO :程序结束时(正常或异常),保证信号量会被重设为调用semop()前的值。这样避免了程序在异常结束时未将锁定的资源解锁,造成该资源永远锁定。 ...

2016-04-14 20:37:09 92

原创 IPC------共享内存

共享内存:在其物理内存上创建出一块内存区,然后将两个或多个进程挂接到这块内存上,这样这块内存区就是这两个进程共享的了。此后,在任何一个进程内进行操作,另一个进程也可见。当不再需要这块共享资源时,再将进程分别与该内存区断开。 共享内存是进程间通信最高效的方式,因为它省去了将数据拷贝到内核,再从内核拷贝出去的时间。但共享内存需要自己维护同步与互斥。函数:int shmget(k...

2016-04-14 18:30:08 69

原创 IPC------信号量

先了解几个概念:临界资源:在一段时间内只允许一个进程访问的资源。临界区:每个进程中访问临界资源的那段代码称为临界区。进程互斥:两个或两个以上进程不能同时访问临界资源。进程同步:异步环境下一组并发进程因相互制约关系而有序的执行。信号量:对外部资源的一种标识,来表示某种资源是否可用。相当于一种特殊的×××量(原子操作),当请求某种资源时,先判断此资源是否可用,如果可用,则向系统申...

2016-04-14 16:13:38 85

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除