【多线程-第一天-多线程的技术方案-pthread演示 Objective-C语言】

ops/2024/11/29 3:06:22/

一、多线程的技术方案

1.我们来看一下多线程的技术方案

通知

技术方案

pthread:一套通用的多线程API、适用于Unix\Linux Windows等系统、跨平台、可移植、使用难度大、C语言、线程的生命周期由程序员管理、使用频率:几乎不用

NSThread:使用更加面向对象、简单易用、可直接操作线程对象、OC语言、线程的生命周期由程序员管理、使用频率:偶尔使用

GCD:旨在替代NSThread等线程技术、充分利用设备的多核、C语言、线程的生命周期自动管理、使用频率:经常使用

NSOperation:基于GCD (底层是GCD)、比GCD多了一些更简单实用的功能、使用更加面向对象、OC语言、线程的生命周期自动管理、使用频率:经常使用

我们在iOS当中,可以使用以上四种方式来创建线程,

1)pthread:一套通用的多线程API,什么是API,是应用程序编程接口,其实就是一套函数、或是一套方法、因为它是C语言的,它里面提供的是函数、方法是属于对象的,函数不属于任何人,可以直接调用,方法是面向对象的、可以在Unix、Linux、Windows下用,为什么没写Mac呢,Mac是基于Unix的、线程生命周期需要程序员管理,那什么是生命周期呢,线程从创建到结束,中间经历的这一个过程,就是线程的生命周期,

pthread的线程生命周期,需要程序员来管理,不经常用,

2)NSThread:是Foundation中提供的一些类,更加面向对象,线程的生命周期也需要程序员来管理,因为NSThread,其实就是对pthread的封装,偶尔使用,

通知

3)GCD:旨在替代NSThread,因为NSThread,线程的生命周期需要程序员来管理,GCD不需要程序员来管理,GCD能够充分的利用设备的多核,GCD也是C语言开发的,所以它里边提供的也是一些函数,

4)NSOperation:是一个类,面向对象,基于GCD,也有GCD的一些优点,充分利用多核,生命周期自动管理,比GCD多了一些更简单实用的功能,经常使用,苹果推荐我们使用NSOperation,因为它面向对象,它也是基于GCD的,

二、pthread演示

1.pthread演示

通知

导入头文件#import <pthread.h>

代码

//线程编号的地址


http://www.ppmy.cn/ops/137543.html

相关文章

macos 14.0 Monoma 修改顶部菜单栏颜色

macos 14.0 设置暗色后顶部菜单栏还维持浅色&#xff0c;与整体不协调。 修改方式如下&#xff1a;

小程序-基于java+SpringBoot+Vue的铁路订票平台小程序设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

树莓派3:64位系统串口(UART)使用问题的解决方法

前言 当我们要使用串口进行zigbee的短距离通信时,发现无法使用串口. 原因 树莓派3bCPU内部有两个串口,一个硬件串口(就是我们平时使用的UART),还有一个迷你串口(mini-uart),在老版本的树莓派中把硬件串口分配在GPIO上,可以单独使用.但是在新的树莓派中官方把硬件串口给了蓝牙…

学习HTML第三十三天

学习文章目录 一.fieldset 与 legend 的使用&#xff08;了解&#xff09;二.表单总结三.框架标签 一.fieldset 与 legend 的使用&#xff08;了解&#xff09; fieldset 可以为表单控件分组、 legend 标签是分组的标题 二.表单总结 form表单&#xff1a; action 属性&#…

Python 网络爬虫进阶:动态网页爬取与反爬机制应对

在上一篇文章中&#xff0c;我们学习了如何使用 Python 构建一个基本的网络爬虫。然而&#xff0c;在实际应用中&#xff0c;许多网站使用动态内容加载或实现反爬机制来阻止未经授权的抓取。因此&#xff0c;本篇文章将深入探讨以下进阶主题&#xff1a; 如何处理动态加载的网…

【入门篇】小游戏——多语言求解版

题目链接 样例说明 样例中&#xff1a; 小明的第一次操作是查询&#xff0c;我们可以得到字符串 “010011” 中第一次出现 ‘1’ 的位置为 2 。 小明的第二次操作将下标为 2的字符反转&#xff0c;此时字符串变为 “000011” 。 小明的第三次操作是查询&#xff0c;我们可…

SSM--SpringMVC复习(一)

SpringMVC Spring MVC 是一个实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c; 本质上相当于 Servlet&#xff0c;以 DispatcherServlet 为核心&#xff0c;负责协调和组织不同组件以完成请求处理并返回响应。通过控制器&#xff08;C&#xff09;对模型数据&…

深入解析 Dockerfile:从入门到实践

一、Dockerfile 是什么&#xff1f; Dockerfile 是一个纯文本文件&#xff0c;其中包含了一系列指令&#xff0c;用于定义如何构建 Docker 镜像。通过 Dockerfile&#xff0c;开发者可以实现应用程序环境的一致性和自动化部署。 1.1 Dockerfile 的作用 描述镜像构建过程。自…