block

iOS 中的 NSTimer

大城市里の小女人 提交于 2020-02-11 05:13:10
iOS 中的 NSTimer NSTimer fire 我们先用 NSTimer 来做个简单的计时器,每隔5秒钟在控制台输出 Fire 。比较想当然的做法是这样的: @interface DetailViewController () @property (nonatomic, weak) NSTimer *timer; @end @implementation DetailViewController - (IBAction)fireButtonPressed:(id)sender { _timer = [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(timerFire:) userInfo:nil repeats:YES]; [_timer fire]; } -(void)timerFire:(id)userinfo { NSLog(@"Fire"); } @end 运行之后确实在控制台每隔3秒钟输出一次 Fire ,然而当我们从这个界面跳转到其他界面的时候却发现:控制台还在源源不断的输出着 Fire 。看来 Timer 并没有停止。 invalidate 既然没有停止,那我们在 DemoViewController 的 dealloc 里加上 invalidate 的方法:

Oracle dump 特定的buffer block

非 Y 不嫁゛ 提交于 2020-02-10 21:51:17
dump 特定的buffer block alter session set events ‘immediate trace name set_tsn_p1 level ts#’; alter session set events ‘immediate trace name buffers level level#’; 其中, ts#=relative_file#+1 relative_file# in(select dbms_rowid.rowid_relative_fno(rowid) relative_file#,dbms_rowid.rowid_object(rowid) obj#,dbms_rowid.rowid_block_number(rowid) block#,id from wangxin.t); level#=select dbms_utility.make_data_block_address(relative_file#,block#) from dual; block# in (select dbms_rowid.rowid_relative_fno(rowid) relative_file#,dbms_rowid.rowid_object(rowid) obj#,dbms_rowid.rowid_block_number(rowid) block#,id

iOS block

落花浮王杯 提交于 2020-02-10 07:11:18
一.认识block    Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理 要么导致return cycle内存泄漏要么内存被提前释放导致crash。 Block的使用很像函数指针,不过与函数最大的不同是: Block可以访问函数以外、词法作用域以内的外部变量的值。换句话说,Block不仅 实现函数的功能,还能携带函数的执行环境。 可以这样理解,Block其实包含两个部分内容 Block执行的代码,这是在编译的时候已经生成好的; 一个包含Block执行时需要的所有外部变量值的数据结构。 Block将使用到的、作用域附近到的变量的值建立一份快照拷贝到栈上。 Block与函数另一个不同是,Block类似ObjC的对象,可以使用自动释放池管理内存(但Block并不完全等同于ObjC对象)   先从一个简单的需求来说:传入两个数,并且计算这两个数的和,为此创建了这样一个block: 1 2 3 int (^sumOfNumbers)(int a, int b) = ^(int a, int b) { return a + b; };   这段代码等号左侧声明一个名为sumOfNumbers的代码块

Ruby学习笔记-Block, Proc and Lambda

你。 提交于 2020-02-09 11:14:10
1.Block:   Ruby中的块就是由多行代码组成的一个代码块,通常可以把它认为是一个匿名方法,常用来迭代一个数组或范围(如 each , times 方法);语法格式如下:   {   //code   } OR   do   //code   end   块变量:当创建一个块时,在两个竖线之间(如: | i |)被称作块变量,作用和一个正常方法的参数一样;如:5.each{| x | puts x } 2.Block and Array Block常用来迭代数组,上面也提到过,所以数组中也定义了很多方法接受块参数;常用的有:   collect :该方法把数组的每一个元素传给块并返回一个新的包括所有元素的数组,原数组的值不变。如果使用collect!方法刚会修改原数组的值;   each :each方法和collect方法有点类似,会把数组的每个元素的值传递给块,但和collect不同的是,each方法不会创建一个新的包含返回值的数组;没有each!方法; 例:   a = [1,2,3]   b = a.collect{|x| x*2}   puts("-a-")   puts a   puts("-b-")   puts b   c = a.collect!{|x| x*2}   puts("-a-")   puts a --------------result----

Linux inode 之我见

时光总嘲笑我的痴心妄想 提交于 2020-02-09 11:11:14
Linux硬盘组织方式为:引导区、超级块(superblock),索引结点(inode),数据块(datablock),目录块(diredtory block).其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等;超级块后面的数据结构是索引结点,它包含了针对某一个具体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置.但是索引结点中不包括文件的名字,文件名是放在目录块里的.目录块里包含有文件的名字以及此文件的索引结点编号 硬盘盘片为圆形,每个硬盘盘片都有一个可以读写的磁头(Head),将这个磁头固定,使硬盘盘片旋转一周,所走轨迹就是磁道(Track)。硬盘内所有盘片的相同磁道号的集合成为磁柱(Cylinder)。每一磁道被划分成许多区域,每个区域叫一个扇区(Sector)硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码

Linux文件系统(inode、block……)

让人想犯罪 __ 提交于 2020-02-09 11:10:50
内容源于《鸟哥的Linux私房菜》    认识 EXT2 文件系统    文件系统的特殊观察与操作 文件系统 superblock,inode,block superblock,inode,block数据简略说明: superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等; inode:记录文件的权限与属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码; block:实际记录文件的内容,若文件太大时,会占用多个 block . 每个 inode 与 block 都有编号,而每个文件都会占用一个 inode ,inode 内则有文件数据放置的 block 号码.所以如果能够找到文件的 inode 的话,那么自然就会知道这个文件所放置数据的 block 号码, 当然也就能够读出该文件的实际数据了. data block (数据区块) block 基本限制: 原则上,block 的大小与数量在格式化完就不能够再改变了(除非重新格式化) 每个 block 内最多只能够放置一个文件的数据 若文件大于 block 的大小,则一个文件会占用多个 block 数量 若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费) 在 Ext2

Linux的磁盘与文件管理系统(1)

别说谁变了你拦得住时间么 提交于 2020-02-09 11:10:24
Linux的磁盘与文件管理系统(1): 一:扇区为最小的物理单位每个为512字节,将扇区组成一个圆那就是柱面,柱面为分区的最小单位,第一个扇区里面有硬盘的主引导记录,那就是MBR与分区表,其中MBR有446个字节,分区表有64个字节。各种接口的磁盘在LINUX中的文件名为/dev/sd[a-p][1-15]:为SCSI,SATA,USB,FLASH等接口的磁盘文件名,/dev/hd[a-d]:为IDE接口的磁盘文件名。磁盘分区是发奋分区的起始柱面与结束柱面,分区表最多能够有四表分区的记录,为住分区与拓展分区的记录,主分区与拓展分区最多有4个(磁盘限制),拓展分区最多有一个(操作系统的限制) 二:文件系统的特性: 格式化的意义:每种操作系统所设置的文件属性/权限不相同,为了存放这些文件需要的数据,需要将分区进行格式化,成为操作系统能够利用的文件系统格式。 Linux的正规文件需要的文件系统为ext2默认情况下windows操作系统不能够识别ext2文件系统。 Linux下文件系统将文件权限与文件属性这两部分的数据放在不同的块中,权限与属性放在INODE中,他的实际数据房子data block 中,还有一个超级块,叫做superblock会记录整个文件系统的整体星系,包括inode与block的总量,使用量,剩余量根据INODE将block中的内容读出来的数据访问方式叫做索引式文件系统

linux 文件系统(inode和block)

夙愿已清 提交于 2020-02-09 11:09:56
linux文件系统(inode block superblock) 先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式。linux的文件格式为Ext2/Ext3,现在好像已经到了Ext4.windows 操作系统为vfat或者NTFS。 linux文件系统: 操作系统的文件数据除了文件实际内容外,还有非常多的属性,如文件权限(rwx)与文件属性(所有者、群组、时间参数等)。 文件系统通常将这两部分数据存放在不同的块。权限属性放到 inode 中,实际数据放到 data block 中。 还有一个超级块(super block)会记录文件系统的整体信息,包括 inode 与block 的数量、使用量等。 inode:记录文件属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码; block:实际记录文件的内容,若文件太大时会占用多个 block ; super block:记录文件系统的整体信息,包括inode/block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等。 每个inode与block都有编号,而每个文件系统都会占用一个inode,inode中有文件数据放置的block号码。我们可以找到文件的inode,然后找出文件所放置数据的block号码

Linux磁盘与文件系统概念理解

此生再无相见时 提交于 2020-02-09 11:09:08
磁盘级别概念 这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。 图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。 简简单介绍了磁盘结构后,下面我们将对磁盘的参数进行讲解。磁盘的常见参数如下: 磁头(head) 磁道(track) 柱面(cylinder) 扇区(sector) 圆盘(platter) 图2中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图2中每条磁道有12个扇区,所以此磁盘的容量为6*7*12*512字节。 即: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 下面讲一下现代磁盘,在老式磁盘中,尽管磁道周长不同,但每个磁道上的扇区数是相等的,越往圆心扇区弧段越短,但其存储密度越高。不过这种方式显然比较浪费空间,因此现代磁盘则改为等密度结构,这意味着外围磁道上的扇区数量要大于内圈的磁道,寻址方式也改为以扇区为单位的线性寻址。为了兼容老式的3D寻址方式,现代磁盘控制器中都有一个地址翻译器将 3D 寻址参数翻译为线性参数。 扇区

图像处理

与世无争的帅哥 提交于 2020-02-09 01:41:57
# -*- coding: utf-8 -*- """ Created on Mon Sep 24 18:23:04 2018 @author: zy """ # 代码来源GitHub:https://github.com/PENGZhaoqing/Hog-feature # https://blog.csdn.net/ppp8300885/article/details/71078555 # https://www.leiphone.com/news/201708/ZKsGd2JRKr766wEd.html import cv2 import numpy as np import math import matplotlib.pyplot as plt class Hog_descriptor(): ''' HOG描述符的实现 ''' def __init__(self, img, cell_size=8, bin_size=36): ''' 构造函数 默认参数,一个block由2x2个cell组成,步长为1个cell大小 args: img:输入图像(更准确的说是检测窗口),这里要求为灰度图像 对于行人检测图像大小一般为128x64 即是输入图像上的一小块裁切区域 cell_size:细胞单元的大小 如8,表示8x8个像素 bin_size:直方图的bin个数 ''' self