<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的objective-c笔记,期待与您交流!
一般来说,进程(Process)就是正在计算机中执行的程序。而线程(Thread)是进程中的某个单一顺序的控制流。线程是进程的细化,它是进程中的实体。本章主要介绍进程操作的一些常用方法和线程的操作等。
一·进程
进程从狭义角度说是程序的执行过程。使用NSProcessInfo方法可以获得的进程信息。例如,当前机器的名称,操作系统类型等。本节主要介绍有关进程的基本操作。
1·创建
我们在使用进程之前必须要将进程的头文件引入:#import <Foundation.h/NSProcessinfo.h>
还需要创建一个进程对象,所有对进程的操作都在这个对象中进行
NSProcessinfo *进程对象名=[NSProcessinfo Processinfo]
2·进程的使用
1)查看进程号
当我们要查看操作系统分配给一个进程的进程号时,可以采用processIdentifier()方法。processIdentifier()方法的返回值为整型。
[进程对象名 processIdentifier]
2) 返回进程的名称
processName()方法是用来返回进程的名称
[进程对象名 processName]
3)返回主机的名称
hostName()方法是用来返回主机的名称
[进程对象名 hostName]
4·操作系统版本信息
要了解操作系统的版本时,可以使用operatingSystemVersionString()方法查看版本信息。
[进程对象名 operatingSystemVersionString]
二·线程
线程是进程的细化。每一个程序至少要有一个线程,这个线程称为主线程。你可以将线程想象成为指令按顺序执行应用的一行代码的执行。介绍有关线程的创建、启动、访问等相关的知识。
1·使用NSThread创建线程
使用线程之前,要将线程的头文件引入:#import <Foundation.h/NSThread.h>
使用detachNewThreadSelector:toTarget:withObject:类方法来生成一个新的线程
[NSThread etachNewThreadSelector:toTarget:withObject:]
2·启动线程
使用detachNewThreadSelector:toTarget:withObject()方法或创建一个新的NSThread对象,将线程创建好以后,它们并没有真正启动线程。为了启动一个线程可以使用start()方法。
1)单个线程的启动
[线程对象名 start]
2)同时运行多个线程
有的时候线程不是只有一个在运行,而是有多个线程同时在运行
3·访问主线程
当我们要访问主线程时可以通过performSelectorOnMainThread()方法来实现。
三·互斥锁
1·要使用NSLock互斥锁,就要先将锁的头文件引入:#import <Foundation.h/NSThread.h>
1)创建
NSLock *互斥锁对象名 = [[NSLock alloc] init]
2)调用
[互斥锁对象名 lock]
3)关闭
[互斥锁对象名 unlock]
2·@synchronized
在使用NSLock的时候,如果忘记将程序中的NSLock解锁就很容易造成死锁。为了避免这种麻烦,Objective-C提供了@synchronized。它是一种内置的语言指令。该指令提供了包括特定作用域和变量参数的内置的底层互斥机制。也就是说它可以为一个变量指定上锁。
@synchronized(变量)
三·进程和线程的区别
进程是应用程序的运行实例,自己享有独立的地址空间。对于多任务操作系统,能够“同时”运行多个进程。但这些是CPU的分时机制在起作用,能够使每个进程都能循环获得自己的CPU时间片。进程(process)本质上是操作系统当前运行的执行程序。