文档章节

多线程啊

 站在长安立交等睡觉
发布于 2016/09/06 19:55
字数 546
阅读 8
收藏 0

- (void)viewDidLoad {

    [super viewDidLoad];

//    _imageview=[[UIImageView alloc]init];

//    _imageview.frame=CGRectMake(50, 50, 300, 300);

//    _imageview.contentMode=UIViewContentModeScaleAspectFit;

    UIButton*button=[[UIButton alloc]initWithFrame:CGRectMake(50, 600, 275, 30)];

    [button setTitle:@"加载图片" forState:  UIControlStateNormal];

    [button addTarget:self action:@selector(loadImagewithThread) forControlEvents:UIControlEventTouchUpInside];

    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    [button setTitleColor:[UIColor blackColor] forState:   UIControlStateHighlighted];

    [self.view addSubview:button];

//    [self.view  addSubview:_imageview];

    _tupianarray=@[@"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=548095586,967520433&fm=116&gp=0.jpg",@"https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2797161595,3723997864&fm=116&gp=0.jpg",@"https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1022628615,2842914551&fm=116&gp=0.jpg",@"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1281570060,2936940376&fm=116&gp=0.jpg",@"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3586233367,3171193232&fm=111&gp=0.jpg",@"https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1759831704,749363101&fm=111&gp=0.jpg",@"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=476197964,4156432555&fm=116&gp=0.jpg",@"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=476197964,4156432555&fm=116&gp=0.jpg",@"https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=796806266,1831553124&fm=111&gp=0.jpg"];

    [self layout];

    [self loadImagewithThread];

   

}

-(void)layout

{

    _mutable=[NSMutableArray array];

    for (int row=0; row<3; row++)

    {

        for (int column=0; column<3; column++)

        {

            UIImageView*imageView=[[UIImageView alloc]initWithFrame:CGRectMake(18.75+column*118.75, 20+row*118.75, 100, 100)];

            imageView.backgroundColor=[UIColor redColor];

            [self.view addSubview:imageView];

            [_mutable addObject:imageView];

        }

    }

}

#pragma mark 使用线程

-(void)loadImagewithThread

{

    

    

    //创建多线程

    for (int i=0;i<9;i++)

    {

        

//        [NSThread  detachNewThreadSelector:@selector(myThread2:) toTarget:self withObject:[NSNumber numberWithInt:i]];

        NSThread*thread=[[NSThread alloc]initWithTarget:self selector:@selector(myThread2:) object:[NSNumber numberWithInt:i]];

        [thread start];

        thread.name=[NSString stringWithFormat:@"%i",i];

 

    }

}

#pragma mark 子线程 带参数的

-(void)myThread2:(NSNumber*)Index

{

    if (![Index isEqual:@8]) {

        //线程休眠2秒

        [NSThread sleepForTimeInterval:2];

    }

    NSData*data=[NSData dataWithContentsOfURL:[NSURL URLWithString:_tupianarray[[Index intValue]]]];

    NSArray *arr=@[data,Index];

    [self performSelectorOnMainThread:@selector(updateImage:) withObject:arr waitUntilDone:YES];

    

    NSLog(@"%@", [NSThread currentThread].name);

}

-(void)updateImage:(NSArray*)array

{

      UIImage *image=[UIImage imageWithData:array[0]];

    UIImageView*imageView=_mutable[[array[1] intValue]];

    imageView.image=image;

}

 

//#pragma mark 不用线程的情况

//-(void)loadimage

//{

////    UIImage*image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://scimg.jb51.net/allimg/160815/103-160Q509544OC.jpg"]]];

////    

////    _imange.image=image;

//    

//    //使用线程

//    //方法一:使用对象方法

//    NSThread *thread=[[NSThread alloc]initWithTarget:self selector:@selector(myThread) object:nil];

//    [thread start];//启动一个线程并不意味着以及执行,而是出于就绪状态,当系统调度时才真正执行。

//    //方法二 类方法

//    [NSThread  detachNewThreadSelector:@selector(myThread) toTarget:self withObject:nil];

//    

//}

//#pragma mark 子线程中的操作

//-(void)myThread

//{

//    NSLog(@"进线程了");

//    NSData*data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://picm.photophoto.cn/005/008/017/0080170433.jpg"]];

////        UIImage*image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://scimg.jb51.net/allimg/160815/103-160Q509544OC.jpg"]]];

////    

////        _imageview.image=image;

//    //这个方法是NSobject的分类方法,每个NSobject对象都有这个方法

//   [ self performSelectorOnMainThread:@selector(backmainThread:) withObject:data waitUntilDone:YES];

//

//}

//#pragma mark  回归主线程的一个更新ui的方法

//-(void)backmainThread:(NSData*)data

//{

//    NSLog(@"h回归主项");

//    _imageview.image=[UIImage imageWithData:data];

//}

© 著作权归作者所有

下一篇: 多线程
粉丝 3
博文 13
码字总数 3564
作品 0
西安
私信 提问
Java 多线程系列目录(共43篇)

Java多线程系列目录(共43篇) 最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。 (一) 基础篇 01. Java多线程系列--“基础篇”01之 基本概念 02. Java多线程系列--“基础篇”02之 ...

foxeye
2016/02/29
277
0
JAVA多线程-基础篇-目录

刚忙完双十一,本系列内容也恰好告一段落,总共分为11个章节,希望对大家有所帮助 JAVA多线程01-基础篇-基本概念 JAVA多线程02-基础篇-线程创建方式 JAVA多线程03-基础篇-线程运行 JAVA多线程...

x_coder
2017/11/14
0
0
Android:关于多线程的总结知识都在这里了!

前言 多线程的应用在Android开发中是非常常见的,常用方法主要有: 今天,我将献上一份全面 & 详细的Android多线程学习指南,希望你们喜欢。 目录

Carson_Ho
05/22
0
0
这是一份全面 & 详细的Android多线程知识总结指南

前言 多线程的应用在Android开发中是非常常见的,常用方法主要有: 今天,我将献上一份全面 & 详细的Android多线程学习指南,希望你们喜欢。 目录 1. 多线程基础知识 在了解Android多线程实现...

Carson_Ho
06/26
0
0
Posix多线程编程学习笔记

Posix多线程编程学习笔记(一)—线程基础(1) http://blog.chinaunix.net/u/22935/showart_310711.html Posix多线程编程学习笔记(一)—线程基础(2) http://blog.chinaunix.net/u/2293...

晨曦之光
2012/04/13
238
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Alibaba 实战(二) - 关于Spring Boot你不可不知道的实情

0 相关源码 1 什么是Spring Boot 一个快速开发的脚手架 作用 快速创建独立的、生产级的基于Spring的应用程序 特性 无需部署WAR文件 提供starter简化配置 尽可能自动配置Spring以及第三方库 ...

JavaEdge
今天
7
0
TensorFlow 机器学习秘籍中文第二版(初稿)

TensorFlow 入门 介绍 TensorFlow 如何工作 声明变量和张量 使用占位符和变量 使用矩阵 声明操作符 实现激活函数 使用数据源 其他资源 TensorFlow 的方式 介绍 计算图中的操作 对嵌套操作分层...

ApacheCN_飞龙
今天
7
0
五、Java设计模式之迪米特原则

定义:一个对象应该对其他对象保持最小的了解,又叫最小知道原则 尽量降低类与类之间的耦合 优点:降低类之间的耦合 强调只和朋友交流,不和陌生人说话 朋友:出现在成员变量、方法的输入、输...

东风破2019
昨天
23
0
jvm虚拟机结构

1:jvm可操作数据类型分为原始类型和引用类型,因此存在原始值和引用值被应用在赋值,参数,返回和运算操作中,jvm希望在运行时 明确变量的类型,即编译器编译成class文件需要对变量进行类型...

xpp_ba
昨天
5
0
聊聊nacos Service的processClientBeat

序 本文主要研究一下nacos Service的processClientBeat Service.processClientBeat nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java public class Service ex......

go4it
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部