zoukankan      html  css  js  c++  java
  • 第一篇: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);

        }

        

    }

     

    运行结果:

  • 相关阅读:
    【iPhone开发】说说Xcode4中xib绑定的原理转
    转 IOS下的图片
    免证书调试Iphone程序(转)
    牛B的Python模块(转)
    6 个手机开发方面很有用的应用
    留个脚印!
    Android初学者入门PDF版
    IOS下的MVC
    android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6
    10 款 Windows 下最佳的免费 PHP 编辑器
  • 原文地址:https://www.cnblogs.com/jinchengvs/p/4835994.html
Copyright © 2011-2022 走看看