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

        }

        

    }

     

    运行结果:

  • 相关阅读:
    python 用 matplotlib 的 basemap 绘制简单世界地图
    python 安装 basemap
    python 茎叶图
    python 用 matplotlib 绘制复合饼图(子母图)
    python 分析世界高收入数据集
    python 用 matplotlib 绘制 南丁格玫瑰图步骤详解
    python 用 matplotlib 中的 patch 模块绘制几何形状(圆,椭圆,圆弧,锲形块,矩形),组装一个机器人图
    python 用 matplotlib 的 patch 模块绘制矩形,画一所房子
    国家统计局数据下载
    python 用 matplotlib 的 patch 模块绘制椭圆详解
  • 原文地址:https://www.cnblogs.com/jinchengvs/p/4835994.html
Copyright © 2011-2022 走看看