多线程实现的方案.docx

多线程实现的方案.docx

ID:58862699

大小:13.98 KB

页数:3页

时间:2020-09-22

多线程实现的方案.docx_第1页
多线程实现的方案.docx_第2页
多线程实现的方案.docx_第3页
资源描述:

《多线程实现的方案.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、04-iOS中多线程实现的方案现在给大家介绍一下,iOS中开发多线程用到的几种技术。首先,隆重介绍一个技术,叫Pthread,Pthread这个技术,我们简单看看,它能干什么。首先,它有一个特点,这哥们是C语言的。它是一套通用的多线程API,适用于Unix、Linux、Windows,也就是说,用Pthread写的程序在UnixLinuxWindows上都能跑;它是跨平台、可移植的。看了这几个特点,大家觉得Pthread牛X吗?相当牛X,但是它的使用难度大。因为越牛X的东西,实际上越靠近底层,使用难度就相对会大。那大家看这边

2、的使用频率,在iOS里面,它是几乎不用。为什么呢?因为太费劲了!实际上不是难度大的问题,是太费劲了。平时人家写几句话就可以了,它是写一坨。所以这个几乎不用。但是Pthread这个技术虽然说几乎不用,但是每个程序员都有一颗底层的心。知道不知道是一回事,讲不讲是另外一回事。是吧,所以呢,给大家演练一下Pthread.打开xcode,创建项目02-Pthread演练(1)删掉废代码,写一个touchBegan方法(2)在下面,我先写一个注释Pthread演练(3)下面,我写一个方法-(void)pthreadDemo{}(4)然后

3、在touch里面调用这个方法:[selfpthreadDemo](5)那么要使用pthread,首先需要导入pthread的头文件#import(6)这个头文件,我们先看一眼,跳进去,跳进去之后,实际上,大家在看头文件的时候,有一个小技巧。看一下这个,这个是我们pthread头文件,然后看这个地方,这时pthread文件所在的目录。然后看这里,这个是什么呢?这是头文件所在的大类。这里有个usr/include,平时我们用的都是Foundation,在这个frameworks里面,而在usr/includ

4、e里面,这下面通常都是跨平台的。(7)也就是说,一旦头文件是定义在这个范围里的,它有几个特点:第一,是跨平台的,跨平台就不是OC的吧。都是C的。这是它一个特点。另外一个特点,就是:定义在这里的头文件通常是没有注释的。(8)有同学会说,这不是有注释吗,再往下走走,这些都没有注释了吧,以前是不是告诉大家,没事到头文件里面looklook,这个实际上,我们在用pthread的时候,look的效果不是特别好。(9)然后,现在给大家看一下,pthread_creatcreat是创建线程的意思,创建线程,比如说这个方法,我跳进头文件,大

5、家看,这头文件里面是不是啥也没有。没有注释,那么没有注释怎么办呢?这里,有一个地址,给大家隆重推荐一下啊,这个地址叫HTTP://baike.baidu.com(10)大家访问过这个网站吧,(11)接下来,给大家讲一下这个方法的参数,第一个,表示的是线程代号的地址,也就是说我们要新建的线程的代号的地址。第2个表示线程属性;第3个表示的是调用函数的指针前边我们做了一个耗时操作的演练,我们是不是建了一个叫longoperation的耗时方法,把那个方法调过去。实际上,开线程是什么?开线程相当于这样。就是说,我们有一个程序,默认开

6、启一条主线程,从上往下执行。然后执行的时候,某一个地方有一个耗时的方法。既然有一个耗时的方法,我们是不是就要新建一个子线程,将耗时方法放到子线程去执行。所以说,在创建线程的时候,通常会有一个调用函数,C语言里面讲的是函数,那么这个耗时方法就放在子线程了。第4个参数:就是传递给该函数的参数然后,这4个参数介绍完了后,再看一下返回值;这个返回值如果是0,表示正确,如果是非0,表示错误码。这地方也是C语言的一个特点,就是C语言里面,它有好多底层的框架里面,如果正确,就返回0,因为正确只有一种情况;而错误有很多种。所以说,如果是非0

7、,它就返回各种各样的数字,我们就可以判断出是哪一种错误好,这些参数介绍完了之后,我们简单看一下,这个程序只是给大家演练一下,满足一下大家那颗底层的心。这个程序平时不用写。我们看,第一个参数,线程代号的地址,它是叫pthread_t,这是在C语言里,它实际上有个特点,就是说,在C语言中,类型的结尾通常识_t或_ref我们在学核心绘图的时候,是不是有什么什么ref,_t也是一种类型。在这写一下,pthread_t这里呢,我写一个pthreadID这个写完之后,在C语言里,定义类型的是_t,或者ref而且不需要使用**。这个是什么

8、原因,实际上我们跳进头文件,这是一个类型,我再跳一下,大家看,它在定义类型的时候,是不是已经有了一个*了,已经是一个指针了,所以我们在用的时候,通常就是找到对应的这个t,它要这个类型,我们就找到这个类型。**是不是就表示指针的地址啊,那么我们在这里写一个&threadID,线程的属性,我们

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。