多线程
来源:互联网 发布:爱知 流星 编辑:程序博客网 时间:2024/05/21 09:03
<span style="font-size:14px;">一 NSThread,pThread,NSObjcet</span>#import "ViewController.h"#import <pthread.h>@interface ViewController ()@end@implementation ViewControllervoid *run (void *param){ return NULL;}- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // PThread pthread_t pThread; pthread_create(&pThread, NULL, run, NULL); // NSThread // 1 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"rose"]; [thread start]; // 2 [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"jack"]; // 3 [self performSelectorInBackground:@selector(run:) withObject:@"xixi"];}- (void)run:(id)object{ NSLog(@"------%@", object);}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
二 线程状态
1 自旋锁 atomic 原子性
2 互斥锁 synchronized
相同点:
都能保证同一时间只有一个线程访问共享资源。都能保证线程安全。
不同点:
互斥锁:如果共享数据已经有其他线程加锁了,线程会进入休眠状态等待锁。一旦被访问的资源被解锁,则等待资源的线程会被唤醒。
自旋锁:如果共享数据已经有其他线程加锁了,线程会以死循环的方式等待锁,一旦被访问的资源被解锁,则等待资源的线程会立即执行。
四 线程间通讯
1 [self performSelectorOnMainThread:<#(nonnull SEL)#> withObject:<#(nullable id)#> waitUntilDone:<#(BOOL)#> modes:<#(nullable NSArray<NSString *> *)#>];2 port对象
0 0
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- drupal中hook_menu()使用
- 巩固C语言(四)-----冒泡排序 & 二分查找 & 单次循环对二维数组赋初值
- 计算机图形学(二)输出图元_3_画线算法_2_DDA算法
- 识别独立安卓设备
- 堆和栈的区别(转过无数次的文章)
- 多线程
- Android API Guides---Menu Resource
- java反射调用private方法,获取修改private属性值
- 用VBA,MATLAB,C 从小到大生成质数表(源代码)
- spring配置datasource三种方式
- 后代选择器和子选择器
- incron 触发式计划任务--RHEL6.5
- Linux内核学习笔记十——虚拟文件系统概念
- Android 蓝牙开发