多线程 NSThread 了解
// DYFViewController.m
// 623-02-pthread
//
// Created by dyf on 14-6-23.
// Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
//
#import "DYFViewController.h"
#import <pthread.h>
@interface
DYFViewController ()
@end
@implementation
DYFViewController
//// c语言函数
//void *run(void *data)
//{
// // 1.获取当前的线程
// NSThread *cThread = [NSThread currentThread];
//
// // 2.打印线程
// NSLog(@"%@", cThread);
//
// // 3.h耗时操作
// for (int i = 0; i < 9999; i++) {
// NSLog(@"%@", cThread);
// }
//
// return NULL;
//}
- (
IBAction
)btnOnClick {
// 1.获取当前的线程
NSThread
*cthread = [
NSThread
currentThread];
NSThread
*mt = [
NSThread
mainThread];
// 2.打印线程
NSLog
(@
"%@"
, cthread);
NSLog
(@
"%@"
, mt);
// 3.执行一线耗时的操作 : 创建一套子线程
[
self
threadCreate3];
}
- (
void
)run:(
NSString
*)parma
{
// [NSThread threadPriority];
//
// [NSThread setThreadPriority:0.55];
// 取值0-1,默认0.5
for
(
int
i = 0; i < 9999; i++) {
NSLog
(@
"%@---------%@"
, [
NSThread
currentThread], parma);
}
}
- (
void
)threadCreate5
{
// 分离出的子线程
[
NSThread
detachNewThreadSelector:
@selector
(run:) toTarget:
self
withObject:@
"2222222"
];
}
- (
void
)threadCreate4
{
// 分离出的子线程
[
NSThread
detachNewThreadSelector:
@selector
(run:) toTarget:
self
withObject:@
"2222222"
];
}
/**
* NSThread创建方式3:隐世线程创建,并且直接(自动)启动
*/
- (
void
)threadCreate3
{
[
self
performSelectorInBackground:
@selector
(run:) withObject:@
"333333"
];
}
/**
* 创建方式2:创建完线程后自动启动
*/
- (
void
)threadCreate2
{
// 分离出的子线程
[
NSThread
detachNewThreadSelector:
@selector
(run:) toTarget:
self
withObject:@
"2222222"
];
}
/**
* 创建方式1:①先创建初始化子线程②再启动
*/
- (
void
)threadCreate
{
NSThread
*thread1 = [[
NSThread
alloc] initWithTarget:
self
selector:
@selector
(run:) object:@
"heheh"
];
thread1.name = @
"thread1"
;
// 开启线程
[thread1 start];
NSThread
*thread2 = [[
NSThread
alloc] initWithTarget:
self
selector:
@selector
(run:) object:@
"heheh"
];
thread2.name = @
"thread2"
;
// 开启线程
[thread2 start];
NSThread
*thread3 = [[
NSThread
alloc] initWithTarget:
self
selector:
@selector
(run:) object:@
"heheh"
];
thread3.name = @
"33"
;
// 开启线程
[thread3 start];
}
@end
利用NSThread在开发中也不常用,了解即可
多线程 NSThread 了解的更多相关文章
- iOS多线程 NSThread/GCD/NSOperationQueue
无论是GCD,NSOperationQueue或是NSThread, 都没有线程安全 在需要同步的时候需要使用NSLock或者它的子类进行加锁同步 "] UTF8String], DISPA ...
- 多线程NSThread基本用法
#import "ViewController.h" @interface ViewController () @end @implementation ViewContr ...
- [iOS]深入浅出 iOS 之多线程 NSThread
OS 支持多个层次的多线程 编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法. 下面简要说明这三种不同范式: Thread 是这三种范式里面相对轻量级的,但也是使用起 ...
- 多线程 -- NSThread
NSThread NSThread 一个NSThread对象就代表一条线程 创建线程的几种方式 alloc/init // 1.创建线程 NJThread *thread = [[NJThread a ...
- [iOS 多线程 & 网络 - 1.1] - 多线程NSThread
A.NSThread的基本使用 1.创建和启动线程 一个NSThread对象就代表一条线程创建.启动线程NSThread *thread = [[NSThread alloc] initWithTar ...
- 多线程 NSThread GCD
ios多线程实现种类 NSThread NSOperationQueue NSObject GCD *************** 1.NSThread //线程 第一种 NSThread *thre ...
- iOS多线程NSThread和GCD
在iOS中啊 其实有多种方法实现多线程 这里只记录两个比较常用的 或者说我比较常用的 一个就是BSThread 另一个就是一听名字就比较霸气的妇孺皆知的GCD 先说一下NSThread吧 这个方式 ...
- iOS 多线程NSThread理解与场景示例
NSThread是相对GCD和NSOperationQuene而言,比较轻量级的一种多线程处理方式. 但同时,它的弊端就是需要自己管理线程的生命周期,以及线程同步:而另外两种不需要自己管理. 常见方法 ...
- 九、使用多线程——NSThread,GCD和NSOperation
概述 早上起床,你先打开洗衣机,然后用热水把泡面泡上,接着打开电脑开启一天的码农生活.其中“洗衣服”.“泡泡面”和“码代码”3个任务(线程)同时进行,这就是多线程.网上有许多关于多线程的经典解释,此处 ...
- IOS 多线程 NSThread
一个正在运行的应用程序是一个进程,一个进程会默认开启一个主线程,但是在主线程中的操作是串行的,也就是当有多个任务同时需要完成的时候,是按照顺序一个个执行.因此,为了提高效率,会在进程中开启多个线程,每 ...
随机推荐
- final、finally、三个关键字的区别
一 final 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以 ...
- Android笔记之获取显示器宽高
原先的Display.getWidth().Display.getHeight()已废弃 推荐的获取Display宽高的方法如下 DisplayMetrics metrics = new Displa ...
- virtualBox 不能开启一个新任务的错误
2016.06.05 这两天想在virtualbox上安装CentOS7.0玩,遇到一个问题: 不能为虚拟电脑 CentOS7 打开一个新任务. The virtual machine 'CentOS ...
- Good Bye 2015 B. New Year and Old Property —— dfs 数学
题目链接:http://codeforces.com/problemset/problem/611/B B. New Year and Old Property time limit per test ...
- BestCoder Round #92 1002 Count the Sheep —— 枚举+技巧
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1002 题解: 做题的时候只是想到 ...
- codeforces B. Eugeny and Play List 解题报告
题目链接:http://codeforces.com/problemset/problem/302/B 题目意思:给出两个整数n和m,接下来n行给出n首歌分别的奏唱时间和听的次数,紧跟着给出m个时刻, ...
- python berkeley 操作——尤其提示 需版本匹配
python berkeley 操作 先到http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/dow ...
- 我的CSDN博客
从csdn搬过来的: csdn地址:http://blog.csdn.net/WR_technology
- Mybatis一二级缓存的理解
频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以 ...
- No result defined for action cn.crm.action.LinkManAction and result input
这是struts2的一个拦截器报的错误,当你的form中的数据有问题,比如说<input type="text" name="receiverLoginID&quo ...