zoukankan      html  css  js  c++  java
  • 面试题4

    58. 线程之间怎么通信?


    59. 线程生产者,消费者怎样实现?

    1 个线程是生产者,一个是消费者怎样实现这个模型.

    NSMutableArray *dataList;NSLock *dataLock;
    - (void) produceAndConsume {

    dataList = [[NSMutableArray alloc] init];
    dataLock = [[NSLock alloc] init];
    [NSThread detachNewThreadSelector:@selector(produce:) toTarget:self withObject:nil];[NSThread detachNewThreadSelector:@selector(consume:) toTarget:self withObject:nil];

    }
    - (void) produce:(id)arg {

    int index = 0;while (1) {

    NSNumber *n = [NSNumber numberWithInt:index++];[dataLock lock];
    [dataList addObject:n];
    [NSThread sleepForTimeInterval:0.5];

    }}

    - (void) consume:(id)arg {while (1) {

    if ([dataList count] > 0) {[dataLock lock];

    id obj = [dataList objectAtIndex:0];[dataList removeObject:0];[dataLock unlock];
    NSLog(@"
    消费 obj %@", obj);

    }

    [NSThread sleepForTimeInterval:1];}

    }
    60. 不同屏幕怎么适配

    iphone, iphone3G, iphone3GS 320x480
    iphone4, iphoen4S 640x960 retina
    iphone5, iphone5S, 640x1136
    敲代码须要有 2 套图片 demo.png demo@2x.pngiphone5 适配.

    1136/2-44-49

    [[UIScreen mainScreen] applicationFrame] = (320x460, 320x548)[[UIScreen mainScreen] bounds] = (320x480, 320x568)
    iPad, iPad2, iPad Mini 1024x768
    iPad3, iPad4, 2048x1563

    61. 不同版本号屏幕旋转怎么适配62. 内存警告应该怎么做

    尽量多的释放内存。把一些内容写到文件里,不要保存在内存中。63. iOS5, iOS6, iOS7 差别

    64. NSNotification 是同步还是异步的

    是同步的. 假设须要异步 必须使用 NSNotificationQueue 实现
    A notification center delivers notifications to observers synchronously. In other words, thepostNotification: methods do not return until all observers have received and processed thenotification. To send notifications asynchronously use NSNotificationQueue.

    In a multithreaded application, notifications are always delivered in the thread in which thenotification was posted, which may not be the same thread in which an observer registereditself.

    Hope it helps you.

  • 相关阅读:
    Mybatis 使用 mapper 接口规范的 一对一, 一对多,多对多映射
    mybatis mapper接口开发dao层
    使用 maven 搭建web开发基本架构
    mybatis dao 层开发简易版 非整合 spring
    mybatis 不整合spring 入门小例子
    spring+spring mvc+JdbcTemplate 入门小例子
    PythonCharm 配置本地反向代理激活
    Python 算法实现
    不写一行代码,绿色三层我也行
    pythonday
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6845096.html
Copyright © 2011-2022 走看看