iosGCD多线程之创建多线程

喔尽量分成一小节一小节的写。这样也难让大家看的清楚些。我这里有三种创建线程的方法。代码如下

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super
viewDidLoad];

}

//当用户点击屏幕,执行线程

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

[self
testThread];

}

-(void)testThread

{

//取到当前线程,在这里就是主线程

NSThread *curThread = [NSThread
currentThread];

NSLog(@"curThread = %@",curThread);

//    //取到主线程的方法

//    NSThread *mainThread = [NSThread mainThread];

//    NSLog(@"mainThread = %@",mainThread);

//

[self
createThread1];

}

-(void)createThread1

{

//一个NSThread对象就是一个线程

// 参数1,2 :
指定线程中由参数1调用参数2的方法

// 参数3 :
给参数2指定的方法传递实参

NSThread *thread = [[NSThread
alloc]initWithTarget:self
selector:@selector(threadMain:)
object:@"线程创建方式1"];

[thread setName:@"我叫二蛋"];

[thread start];

}

-(void)createThread2

{

[NSThread
detachNewThreadSelector:@selector(threadMain:)
toTarget:self
withObject:@"线程创建方式2"];

}

-(void)createThread3

{

[self
performSelectorInBackground:@selector(threadMain:)
withObject:@"线程创建方式3"];

}

-(void)threadMain:(id)obj

{

for (int i =
0; i<1000; i++) {

NSLog(@"i = %d,obj = %@,thread = %@",i,obj,[NSThread 
currentThread]);

}

}

当然大家还是需要多用,就像吃饭,吃的多了还能挑刺,继续下一篇,今天晚上3更。哈哈

时间: 2024-08-08 01:27:26

iosGCD多线程之创建多线程的相关文章

多线程_创建线程_继承Thread类

public class ThreadDemo {   public static void main(String[] args){         Demo d = new Demo();   d.start();      for(int i = 0;i < 100;i++){      System.out.println("MainThread" + i);   }   } } class Demo extends Thread {   public void run(

创建多线程类

# -*- coding: cp936 -*- #python 27 #xiaodeng #http://www.cnblogs.com/fnng/p/3489321.html #创建多线程类 import threading from time import sleep,ctime class MyThread(threading.Thread):#threading.Thread '创建MyThread类,用于继承threading.Thread类.' def __init__(self,f

Java多线程开发系列之二:如何创建多线程

前文已介绍过多线程的基本知识了,比如什么是多线程,什么又是进程,为什么要使用多线程等等. 在了解了软件开发中使用多线程的基本常识后,我们今天来聊聊如何简单的使用多线程. 在Java中创建多线程的方式有两种: (1)写一个子类,这个类要继承自Thread类,于此同时这个子类必须要重写Thread类中的run方法(原因我后文中会提到),然后我们就可以用这个类来创建出一个多线程. (2)仍然是写一个类,这个类要实现Runnable接口,与(1)相同,在这个实现类中也需要重写run方法. 这里有一点要注

Qt多线程学习:创建多线程

[为什么要用多线程?] 传统的图形用户界面应用程序都仅仅有一个运行线程,而且一次仅仅运行一个操作.假设用户从用户界面中调用一个比較耗时的操作,当该操作正在运行时,用户界面一般会冻结而不再响应.这个问题能够用事件处理和多线程来解决. [Linux有线程的概念吗?] 传统的UNIX系统也支持线程的概念,但一个进程里仅仅同意有一个线程,这样多线程就是多进程.Linux下的Posix线程(pthreads)是一种轻量级的进程的移植性实现,线程的调度由内核完毕,每一个线程都有自己的编号.假设使用线程,整体

多线程编程--创建线程之Thread VS Runnable

前面写过一篇基础的创建多线程的博文: 那么本篇博文主要来对比一下这两种创建线程的区别. 继承Thread类: 还拿上篇博客的例子来说: 四个线程各自卖各自的票,说明四个线程之间没有共享,是独立的线程.每个线程平等,没有优先级关系.这三个线程不是一次交替执行,而是三个线程同时被执行的情况下,有的线程被分配时间片的机会多,票被提前卖完,有的线程被分配的时间片的机会少,票迟一些卖完. 故,利用扩展Thread类创建的多个线程,虽然执行的是相同的代码,但彼此相互独立,且各自拥有自己的资源,互不干扰. 分

iOS开发多线程篇—创建线程

iOS开发多线程篇—创建线程 一.创建和启动线程简单说明 一个NSThread对象就代表一条线程 创建.启动线程 (1) NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; [thread start]; // 线程一启动,就会在线程thread中执行self的run方法 主线程相关用法 + (NSThread *)mainThread; // 获得主线程 -

Linux多线程程序设计------创建线程

1.创建线程 #include<pthread.h> int pthread_create(pthread_t* tidp,const pthread_attr_t *attr,void*(*start_rtn)(void),void*arg) tidp:线程id attr:线程属性(通常为空) start_rtn:线程要执行的函数 arg:start_rtn的参数 Linux多线程程序设计------创建线程,布布扣,bubuko.com

java用Thread方式创建多线程

进程:一个正在执行的程序,每一个进程都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元.线程:进程中一个独立的控制单元.线程控制着进程的执行.一个进程中至少有一个线程. java VM中至少有一个线程负责java程序的执行.而且这个线程运行的代码存在于main方法中.该线程为主线程. 扩展,jvm启动了两个线程,一个主线程,一个垃圾回收机制的线程. 1.怎样创建一个多线程?第一种方法:通过继承Thread类的方法 1.继承Thread类 2.重写Thread类的run()方法 目的:将自

Win32 多线程的创建方法,区别和联系

Win32多线程的创建方法主要有: CreateThread() _beginthread()&&_beginthreadex() AfxBeginThread() CWinThread类 一.简介 CreateThread: Win32提供的创建线程的最基础的API,用于在主线程上创建一个线程.返回一个HANDLE句柄(内核对象).在内核对象使用完毕后,一般需要关闭,使用CloseHandle()函数. _beginthread()&&_beginthreadex():_