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);

        }

        

    }

     

    运行结果:

  • 相关阅读:
    HTML4如何让一个DIV居中对齐?float输入日志标题
    HTML3层叠样式表
    面向对象 学生考试计分题目
    C#总复习
    HTML2列表表单框架
    HTML1网页三部份内容
    HTML 5 JavaScript初步 编译运行.doc
    初识MYSQL
    数据库设计
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/jinchengvs/p/4835994.html
Copyright © 2011-2022 走看看