当前位置:  编程技术>移动开发
本页文章导读:
    ▪线程状态切换 退出-暂停-持续        线程状态切换 退出-暂停-继续 对于SuspendThread函数的没有真正理解清楚.直到最近使用多线程执行任务的时候,发现有时候使用它比额外使用内核对象来更加方便. DWORD WINAPI ThreadProc( PVOID pvParament.........
    ▪ Objective-C的属性跟成员变量用法及关系浅析        Objective-C的属性和成员变量用法及关系浅析     在使用Objective-C语言进行了一段时间的iOS开发之后,发现自己的语言基础相对薄弱,于是开始弥补自己的短处。我发现在用过一种语言之后,再.........
    ▪ 天国里的苹果!乔布斯去世一周年纪念       天堂里的苹果!乔布斯去世一周年纪念 分享到    作为标志性的个人计算机革命的卓越领导者,史蒂夫?乔布斯在最近的三十年当中,可以当之无愧的称为硅谷王者。从Macintosh、iPod、到.........

[1]线程状态切换 退出-暂停-持续
    来源: 互联网  发布时间: 2014-02-18
线程状态切换 退出-暂停-继续

对于SuspendThread函数的没有真正理解清楚.直到最近使用多线程执行任务的时候,发现有时候使用它比额外使用内核对象来更加方便.

DWORD WINAPI ThreadProc( PVOID pvParament )

{

int iCnt = 0;

while ( 1 )

{

cout<<iCnt<<endl;

if ( iCnt > 10000 )

{

break;

}

++iCnt;

}

return 0;

}

void main()

{

bool bExit = FALSE;

HANDLE  hThread = CreateThread( NULL,0,ThreadProc,NULL,0,NULL );

Sleep( 2000 );

SuspendThread( hThread );

Sleep( 2000 );

ResumeThread( hThread );

WaitForSingleObject( hThread,INFINITE );

CloseHandle( hThread );

}


这里简单使用这两个函数来完成线程的运行-中断-继续的状态切换.

核心编程中关于如何完全终止线程问题做出了一些引导:让我们尽量实现线程自己退出,而不是使用Windows那些逼不得已的函数.

代码大概的意思是:

DWORD WINAPI ThreadProc( PVOID pvParament )

{

while( WaitForSingleObject( hEvent,INFINITE ) == WAIT_OBJECT_0 )

{

//循环做一些操作.循环里面保存当前状态.

}

return 0;

}


这样我们可以使用hEvent来控制线程的暂停,继续,和退出.这样总体来讲

这种写法主要的问题有:

1. 整个线程执行体都在while里面,但初始化代码不能放在while,现在的可能把初始化代码加到while的前面,这样唯一的问题在于无法掌控初始化代码的状态.

2. 线程在控制的时候并不能达到”暂停”的目地,因为需要我们去手动保存当前的状态,等到hEvent变成可触发状态时,再继续(整个过程完全由我们自己来控制),实际上我们可以使用SuspendThread.


    
[2] Objective-C的属性跟成员变量用法及关系浅析
    来源: 互联网  发布时间: 2014-02-18
Objective-C的属性和成员变量用法及关系浅析

    在使用Objective-C语言进行了一段时间的iOS开发之后,发现自己的语言基础相对薄弱,于是开始弥补自己的短处。我发现在用过一种语言之后,再回过头来看它的很多原理会发现有更加深刻的理解。下面就对一直困惑我的属性和成员变量的用法和关系问题进行浅析,由于水平有限可能会有错误,请看过文章的人多多指正。

1、属性

    关于属性的用法在苹果的官方文档《The Objective-C Programming Language》中有详细的说明,在这里就不再赘述,链接如下:

    《The Objective-c Programming Language》

    如果你的英文不好,没关系,已经有人把这个文档全部翻译完了,链接如下:

    Objective-C编程语言官方文档翻译

2、关于@synthesize object = _object 的解释

    我们在很多代码中会见到这样的写法:

@interface MyClass:NSObject{  
        MyObjecct *_object;
}
@property(nonamtic, retain) MyObjecct *object;
@end

@implementatin MyClass
@synthesize object=_object;
    我在网上查阅了一些资料和其他人写的博文,总结了这样写的几条原因如下:    

(1)32位系统和64位系统的差异

    在32位系统中,如果类的@interface部分没有进行ivar(instance variable)声明,但有@property声明,在类的@implementation部分有响应的@synthesize,则会得到类似下面的编译错误:

    Synthesize property ‘xX’ must either be named the same as a compatible ivar or must explicitly name an ivar

    在64位系统中,运行时系统会自动给类添加ivar,添加的ivar以一个下划线“_”做前缀。

(2)避免莫名其妙的Bug

    在这里简单说一下_object和object的区别。_object是MyClass类的成员变量,object是属性。property和synthesize定义了一对getter和setter方法,在这里的getter方法是object,setter方法是setObject,事实上getter和setter方法操作的是变量_object。

    如果写synthesize objec = _object 时getter方法为:

-(MyObject *)object
{
    return _object;
}
    如果写synthesize object 时getter方法为:

-(MyObject *)object
{
    return object;
}
    当函数名和属性名重名的时候会出现意想不到的错误,为了避免这种Bug,Apple给的Demo Code里面多数也采用这种方式。

(3)属性和变量的用法

    属性是用self.object,通过getter方法来调用的,可以在类外使用。而变量是通过_object来调用,只能在该类对应的implementation中使用,在类外不能使用。

    下面看一下两种赋值操作:

   

 self.object = [[MyObject alloc] init];
_object = [[MyObject alloc] init];
    第一种的方式和@property(nonamtic,retain)有关,实际上是通过调用setter方法setObject来实现赋值的。第二种方式是简单的指针赋值,没有调用setter方法。

    下面是retainCount的变化:

MyObject *tmp = [[MyObject alloc] init];
self.object = tmp;  //retainCount = 2
[tmp release];  //retainCount = 1
_object = [[MyObject alloc] init];  //retainCount = 1






    
[3] 天国里的苹果!乔布斯去世一周年纪念
    来源: 互联网  发布时间: 2014-02-18
天堂里的苹果!乔布斯去世一周年纪念
分享到 
 

作为标志性的个人计算机革命的卓越领导者,史蒂夫?乔布斯在最近的三十年当中,可以当之无愧的称为硅谷王者。从Macintosh、iPod、到iTunes和iPhone、iPad,他发出独特的“非同凡想”口号已经获得了世人的认可。

出生即被未婚父母送样,付不出高昂的学费而辍学,被自己创立的公司开除,被诊断出绝症。一连串的人生低潮对他而言却是美好的体验。

去年10月5日,乔布斯于美国加州逝世,享年56岁。苹果公司董事会在声明中说道:“乔布斯的聪明和热情,是无数发明以改善我们生活的源泉。因为乔布斯,世界变得无限美好。”

乔布斯1955年2月24日出生于旧金山。出生后不久就被Paul和Clara Jobs领养。他的亲生父母,Joanne Simpson和Abdulfattah Jandali,在乔布斯出生时还只是一对未婚的研究生情侣。在抛弃乔布斯之后不久他们结了婚,并育有一个女儿,也就是乔布斯的亲生妹妹,美国知名小说家 Mona Simpson。

1976年,乔布斯与童年好友沃兹尼亚克共同创办苹果电脑公司,销售被认为全世界第一台的个人电脑——Apple II。外界称其为创新者,改变电脑的世界,与爱迪生齐名。

乔布斯、考克利及好友沃兹尼亚克推出了Apple II

1984年,担任苹果电脑董事局的乔布斯向股东们介绍名为“Macintosh”的个人电脑。第二年,他便被逐出公司,十多年间,被科技界视为昨日黄花。

被解雇几年后,苹果开始走下坡路,逐渐滑向电脑行业的边缘地带。直到1997年乔布斯回归苹果,局势才得以扭转。

乔布斯回归苹果之前两年,苹果共亏损近20亿美元,股价跌至历史最低水平。乔布斯执掌大权后,十多年间,苹果市值至今已逾3500亿美元。

1999年3月,苹果推出OS X Server。OS X系统成为Mac电脑的软件支柱。

2001年,苹果推出钛金属外壳的Mac个人电脑。不断推陈出新是乔布斯追求技术创新的证明。

2005年,苹果推出iPod shuffle,改写了电子音乐的潮流。

2010年1月27日,乔布斯出席苹果发布会,发布了iPad。

2010年6月7日,时任苹果行政总裁的乔布斯发布了iPhone 4.这也是他最后一次现身亲自介绍iPhone产品。他独特的演说技巧为人所津津乐道。

2011年3月2日,苹果推出iPad 2平板电脑。iPod、iPad和iPhone等一系列创新产品彻底改变了个人电脑和数字媒体行业。

如其亲生父母一样,乔布斯也有过未婚生子的经历。1978年,乔布斯的女朋友,画家Chrisann Brennan为他生下了一个女儿。然而当时的乔布斯却拒绝承认此事,声称自己“不孕不育”,不可能有自己的孩子。所以Brennan只能无奈的独自抚养 这个女儿,情况艰难的她甚至还需要依靠当地的福利制度才能度日。不过最终乔布斯还是承认了这个图片上名为Lisa Brennan-Jobs的女儿。Lisa在2000年从哈佛大学毕业之后成为了一名作家。

在一部非官方的乔布斯传记《The Second Coming of Steve Jobs》当中,作者Alan Deutschman曝出了乔布斯曾和一位出生于1941年,被誉为“民谣女皇”的乡村女歌手约会。不过乔布斯从未承认他与Baez的关系。在另一部非官 方的传记《iCon:Steve Jobs》当中,作者也曝出了乔布斯有可能已与这名歌星结婚的内幕。不过文中谈到“考虑到她的年纪,他们似乎不太可能育有孩子”。

1991年3月18日,乔布斯与劳伦 鲍威尔(Laurene Powell)在美国国家公园的Ahwahnee酒店举行了婚礼。有意思是的,这场婚礼的主持并非任何一名有名气有身份的大人物,而是一个普通的禅宗和 尚。他们在婚后育有三个孩子,Reed Paul,Erin Sienna和Eve。

乔布斯的传奇之处在于他改善了世界上很多人的生活质量,这不仅是因为他提出的物质创新。例如iPod或Mac电脑,也不仅因为他提出的服务创 新,例如iT unes和App应用,而是因为他代表一个开放理念模式,这个模式是之前无人敢梦想的。对乔布斯来说,未发现的新理念是无穷无尽的,人们需要做的是尽量扩 展自己的想象力,而后和其他人一起合作,把这些理念变成事实。

如果找不到最完美、最好的东西,他宁可一无所有。这种偏执在苹果的产品设计中随处可见。完美主义在企业文化中并不是被鼓励的品质,因为它往往是 执行力的天敌。为了“可以再完善一点”而反复延宕,最终可能导致灾难性后果。苹果和乔布斯调和完美主义的方法是“从最少开始”;如果不能把这件新产品的十 个功能都做到完美,我们就砍掉五个,哪怕其中包括在传统智慧看来不可缺少的功能。

2004年,乔布斯被诊断出患上了一种罕见的胰腺癌。那一年,他请了病假,之后在2009年上半年又再次病假,并在同年的9月底回到公司。这一年,他接受了肝脏移植手术。

苹果创立者史蒂夫 乔布斯留下的是一个联合创新的模式。这个模式并非不可复制或超越,其他人也能跟随这个模式,创造全新的产品和服务,推进经济发展、改变人们的生活。这或许就是纪念乔布斯,一个伟大企业家、创新者和远见家最好的方式。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3