现在位置: 首页 > 综合 > 文章
2019年11月14日 综合 ⁄ 共 1858字 暂无评论
  登录系统后,在当前命令窗口下输入命令:   ls /   以下是对这些目录的解释:   /bin:   bin是Binary的缩写, 这个目录存放着最经常使用的命令。   /boot:   这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。   /dev :   dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。   /etc:   这个目录用来存放所有...
阅读全文
  Linux与Windows之间的简单对比,分别对比他们的界面、驱动程序、使用、学习以及软件,达到让更多的新手快速了解Linux与Windows,更好的区别他们之间的关系。   Windows界面   界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同   Linux界面   图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。   Windows驱动程序  ...
阅读全文
2019年11月13日 综合 ⁄ 共 1154字 评论关闭
  NSMutableArray是线程不安全的,当有多个线程同时对数组进行操作的时候可能导致崩溃或数据错误   线程锁:使用线程锁对数组读写时进行加锁   派发队列:在《Effective Objective-C 2.0..》书中第41条:多用派发队列,少用同步锁中指出:使用“串行同步队列”(serial synchronization queue),将读取操作及写入操作都安排在同一个队列里,即可保证数据同步。   而通过并发队列,结合GCD的栅栏块(barrier)来不仅实现数据...
阅读全文
2019年11月13日 综合 ⁄ 共 863字 评论关闭
  atomic 修饰的属性是绝对安全的吗?为什么?   不一定安全,所谓的安全只是局限于 Setter、Getter 的访问器方法而言的,你对它做 Release 的操作是不会受影响的。这个时候就容易崩溃了。   atomic原子性,是否是绝对线程安全的,不是绝对线程安全怎么理解?首先看一下代码以及打印结果   @property (atomic, assign) NSInteger intA; //有一个atomic的属性,表示是原子的   - (void)viewDidLoad {   [super viewDidLo...
阅读全文
2019年11月13日 综合 ⁄ 共 3890字 评论关闭
  所有的引用计数系统,都存在循环应用的问题。例如下面的引用关系:   对象a创建并引用到了对象b.   对象b创建并引用到了对象c.   对象c创建并引用到了对象b.   这时候b和c的引用计数分别是2和1。当a不再使用b,调用release释放对b的所有权,因为c还引用了b,所以b的引用计数为1,b不会被释放。b不释放,c的引用计数就是1,c也不会被释放。从此,b和c永远留在内存中。   这种情况,必须打断循环引用,通过其他规则...
阅读全文
2019年11月13日 综合 ⁄ 共 3420字 评论关闭
  Block的好处,我总结了下主要有2点:1.用于回调特别方便,2.可以延长对象的作用区域。但是,Block的内存管理这个模块一直不是很清楚,这个周末好好的看了下Block的原理,有些许心得。   为了性能,默认Block都是分配在stack上面的,所以它的作用区域就是当前函数。   #include   int main()   {   int i = 1024;   void (^blk)(void) = ^ {   printf("%d\n", i);   };   blk();   return 0;   }   ...
阅读全文
2019年11月13日 综合 ⁄ 共 941字 评论关闭
  1.对于autorelease的理解   Each thread in a Cocoa application maintains its own stack of autorelease pool blocks.(Advanced Memory Management Programming Guide:Using Autorelease Pool Blocks)   通过这句话,我们可以看出   autorelease pool 是栈的形式,and autorelease pool blocks can be nested   主线程中也有自己的autorelease pool,这又牵扯出run loop。实际上,每次执行一次runloop时,就会释...
阅读全文
2019年11月13日 综合 ⁄ 共 973字 评论关闭
  最近开是做新项目,准备尝试使用ARC,记录遇到的一些问题。   ARC是编译器特性,所以要求Xcode的最低版本为4.2,iOS4以上(注意weak是ios4以上才有的,ios4中只能使用__unsafe_unretained)。   ARC的规则:   不能调用dealloc方法(可以重写,做一些清除操作,例如delegate置空,清除非ARC管理的内存,不能调用[super dealloc],编译器会自动帮你出入该代码),不能调用retain,release,autorelease,retainCount。   CF...
阅读全文
2019年11月13日 综合 ⁄ 共 325字 评论关闭
  今天在看多线程同步时,突然想到了单例的同步问题。自从dispatch_once出现后,我们创建单例非常简单且安全:   View Code   苹果简洁的接口已经慢慢让我们忘记了创建单例时的同步问题。   普通的创建单例方法:   View Code   这么写是没问题的,但是在多个线程同时调用时效率不高,可以用著名的double check方法来提高效率:   View Code   如果没有第一个if (obj == nil),每一次调用这个方法,都会用锁操作...
阅读全文
2019年11月13日 综合 ⁄ 共 223字 评论关闭
  要点:   retain使对象的引用计数+1,需要release   在属性中retain,需要在dealloc中release   delegate最好不要retain,以免循环引用   注意:   retain在属性中的用法,调用self.XX时系统默认步骤是先release就对象,再retain新对象   正确的释放方法为使用是不需要释放,直接在dealloc里面释放,即使该属性没有alloc,也应该在dealloc里面释放,以免发生leaks
阅读全文