第一篇:NSTread线程的创建

#import "ViewController.h"

//导入头文件

#import <pthread.h>

@interfaceViewController ()

@end

@implementation ViewController

- (void)viewDidLoad

{

[superviewDidLoad];

[selfbtnClick];

}

/*

*NSThread创建线程方式

*1.先初始化线程

*2.start开启线程

*/

-(void)btnClick

{

//1.获取当前线程

NSThread * current = [NSThreadcurrentThread];

//主线程

NSLog(@"进入主线程--%@",current);

//获取主线程的另一中方式

NSThread*main =[NSThreadmainThread];

NSLog(@"主线程2--%@",main);

//执行一些耗时操作(分多一个线程)

[selfcreatNSTread];

}

-(void)creatNSTread

{

NSThread * thread1=[[NSThreadalloc]initWithTarget:selfselector:@selector(run:) object:@"线程A"];

//设置一个名称

thread1.name=@"线程A";

//开启线程

[thread1 start];

NSThread * thread2=[[NSThreadalloc]initWithTarget:selfselector:@selector(run:) object:@"线程B"];

//设置一个名称

thread2.name=@"线程B";

//开启线程

[thread2 start];

}

-(void)run:(NSString*)str

{

//获取当前线程

NSThread * current=[NSThreadcurrentThread];

//打印输出

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

NSLog(@"run--%@--%@",current,str);

}

}

运行结果:

/******************************创建NSTread线程方式2**************************************/

#import "ViewController.h"

//导入头文件

#import <pthread.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

[self btnClick];

}

-(void)btnClick

{

//1.获取当前线程

NSThread * current = [NSThread currentThread];

//主线程

NSLog(@"进入主线程--%@",current);

//获取主线程的另一中方式

NSThread*main =[NSThread mainThread];

NSLog(@"主线程2--%@",main);

//执行一些耗时操作(分多一个线程)

[self creatNSTread2];

[self creatNSTead3];

}

/*

*NSTread创建线程方式2

*创建完线程直接启动(自动)

*/

-(void)creatNSTread2

{

[NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"第一线程"];

}

-(void)creatNSTead3

{

//在后台线程执行在子线程中执行

[self performSelectorInBackground:@selector(run:) withObject:@"第二线程"];

}

-(void)run:(NSString*)str

{

//获取当前线程

NSThread * current=[NSThread currentThread];

//打印输出

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

NSLog(@"run--%@--%@",current,str);

}

}

运行结果:

时间: 2025-01-03 20:21:11

第一篇:NSTread线程的创建的相关文章

第一篇:线程间的通信

  1.线程间的通信:在一个进程中,线程往往不是独立存在的,多个线程之间需要经常进行通信. 2.线程间通信的体现: 一个线程传递数据给另一个线程 在一个线程执行完特定任务后,转到另一个线程继续执行任务 3.线程间通信常用方法: —(void)performSelectorOnMainThread:(SEL)aselector  withObject:(id)arg waitUntilDone:(BOOL)wait; —(void)performSelector:(SEL)aselector on

第一篇:线程的安全

一.资源共享 我们知道一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源,不如多个线程访问同一个对象,同一个变量.同一个文件.当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题. 例如:我们工厂要生产零件,A生产线和B生产线每个线有1000个零件要生产,但是他们用的是同一个零件箱,那零件箱只能放1000个零件,当他们生产完之后还剩很多零件堆着,这时他们很容易产生矛盾. 还有就是一个经典的例子:卖票: 问题代码: #import "ViewController.h"

Shell实战第一篇:自动批量创建用户并配置保存自定义密码

个人笔记分享(在线阅读):http://note.youdao.com/noteshare?id=c4ee31bdcef0d28ec525bed113c93763&sub=CFE5180F8455421E9D5252FEC98AB1ED 原文地址:http://blog.51cto.com/6575793/2072687

第一篇文章-VS的Local DB数据库连接失败,创建实例失败的解决方案

用了很久的LocalDB了,不用装那么多的SQL组件感觉很不错,前不久调试代码碰到一个问题 ,VS突然就连接不上LocalDB了,琢磨了一下午,其实有个很简单的方法. 第一步,先找到SQL Local DB的版本,我用的是VS2013,所以是V11.0,或者可以在cmd里打 sqllocaldb versions 这样的话,其实默认的实例就是v11.0了,当然如果你项目用的不是这个实例的话,那就不用这样了. 第二步,找到实例的文件夹,我用的是win8的系统,我的路径是C:\Users\用户名\A

JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载)

一 前言 截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序.笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前,已经实现了 服务端/客户端 的上传.下载部分的功能逻辑.涉及到的知识点包括线程池技术.linux epoll并发技术.上传.下载等.JDFS的下载功能的逻辑部分与笔者前几篇关于JWebFileTrans(JDownload)比较类似.如果读者对socket网络下载不熟悉或者是只对下载功能感兴趣,请

Java线程入门第一篇

Java线程的状态有6种 1.  初始(NEW):新创建了一个线程对象,但还没有调用start()方法. 2.  运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为"运行".(什么是就绪) 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法.该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready).(什么是运行)就绪状态的线程在获得CPU时间片后变为运行中状态(

秒杀多线程第一篇 多线程笔试面试题汇总 ZZ 【多线程】

http://blog.csdn.net/morewindows/article/details/7392749 系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性.系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”.有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题. ----------------------

HTTP -&gt; Asp.net (第一篇)

当用户在浏览器输入一个URL地址后,浏览器会发送一个请求到服务器.这时候在服务器上第一个负责处理请求的是IIS.然后IIS再根据请求的URL扩展名将请求分发给不同的ISAPI处理. 流程如下: 1.IIS => aspnet_isapi阶段 ISAPI是一个底层的WIN32 API,开发者可以使用这些接口深入到IIS,让IIS支持各种其他处理程序.ISAPI是一个桥接口,通常用于高层次的工具与IIS之间的接驳.例如Windows下的Apache与Tomcat就是构建于ISAPI之上.ISAPI是

秒杀多线程第八篇 经典线程同步 信号量Semaphore

版权声明:本文为博主原创文章,未经博主允许不得转载. 阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇一个经典的多线程同步问题> <秒杀多线程第五篇经典线程同步关键段CS> <秒杀多线程第六篇经典线程同步事件Event> <秒杀多线程第七篇经典线程同步互斥量Mutex> 前面介绍了关键段CS.事件Event.互斥量Mutex在经典线程同步问题中的使用.本篇介绍用信号量Semaphore来解决这个问题. 首先也来看看如何使用信号量,信号量Semaphore