多线程之NSOperationQueue(线程队列)

S4 Hana SD -信贷管理 - 02 在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。 阅读详情

NSOperationQueue的使用

OperationQueue 相比 GCD的优势:

  • 1.可以设置依赖关系
  • 2.队列可以暂停
  • 3.可以取消队列中的操作

NSOpertionQueue NSOperation
Queue
主队列 和 自定义队列
主队列是运行在主线程当中,自定义队列运行在后台

NSOperation 定义需要执行的操作(任务)
定义需要的操作,然后把该操作添加到合适的队列中
- 1.创建队列对象
- 2.创建操作对象
- 3.把操作对象添加到队列之中,等待队列分配线程执行操作

1.创建队列

 NSOperationQueue *queue = [[NSOperationQueue alloc] init];
//最大并发操作数
    //队列中最多有几个操作同时执行
    queue.maxConcurrentOperationCount = 1;

   //暂停执行队列中的线程
   // [queue setSuspended:YES];

2.创建操作

 //NSOperation 不能直接使用
    //使用子类的对象
//    NSOperation *operation = [[NSOperation alloc] init];
    NSOperation *op1 = [[NSInvocationOperation alloc] initWithTarget:self
                                                            selector:@selector(thread1:)
                                                              object:@"op1 "];

    NSOperation *op2 = [[NSInvocationOperation alloc] initWithTarget:self
                                                            selector:@selector(thread2:)
                                                              object:@"op2 "];

    NSBlockOperation *op3 = [[NSBlockOperation alloc] init];
    [op3 addExecutionBlock:^{
        for (int i = 0; i < 10; i++) {
            NSLog(@"OP1 ----- %d", i);
            sleep(1);
        }
    }];

    NSBlockOperation *op4 = [NSBlockOperation blockOperationWithBlock:^{
        for (int i = 0; i < 10; i++) {
            NSLog(@"OP4 ------------ %d", i);
            sleep(1);
        }
    }];

3.把操作加入到队列中

//加入之后,如果有操作,那队列就会自动执行
    [queue addOperation:op1];
    [queue addOperation:op2];
    [queue addOperation:op3];
    [queue addOperation:op4];

4.设置操作的优先级

    [op1 setQueuePriority:NSOperationQueuePriorityLow];
    [op2 setQueuePriority:NSOperationQueuePriorityNormal];
    [op3 setQueuePriority:NSOperationQueuePriorityHigh];
    [op4 setQueuePriority:NSOperationQueuePriorityVeryHigh];

5.设置操作之间的依赖关系

  • (1)加入队列中时间
  • (2)优先级
  • (3)依赖关系 (明确指定操作的执行顺序)
[op2 addDependency:op1];    //op2的执行依赖于op1,保证op1肯定op2之前执行
//重新让队列执行
 [queue setSuspended:NO];

6.取消所有的操作 不能取消正在执行的操作

 sleep(3);
    [queue cancelAllOperations];
 //取消一个操作
    [op3 cancel];

6.与此同时主线程也在运行:

for (int i = 0; i < 50; i ++)
    {
        NSLog(@"主线程 : %d", i);
    }
- (void)thread1:(NSString *)name
{
    //具体要执行的操作
    for (int i = 0; i < 50; i ++) {
        NSLog(@"多线程 %@:     %d", name, i);
    }
}

- (void)thread2:(NSString *)name
{
    for (int i = 0; i < 50; i ++) {
        NSLog(@"多线程 %@:     %d", name, i);
    }
}
@end
ABAP 系统里使用 SAP Joule 辅助编程的前提条件 只是说这些大语言模型是针对互联网上能够挖掘到的所有数据进行训练,不像 SAP Joule 那样术业有专攻,仅仅深耕 SAP 技术和业务领域,因此大伙儿对 SAP Joule 的期望值,也远远高于通过大语言模型。SAP Joule 从 ABAP Development Tool 的 Chat 窗口中接收到的对话请求,都会路由到 SAP BTP 上的 AI Foundation.在上述 ABAP 环境中启用 SAP Joule,需要购买额外的 license:8019124. 阅读详情

相关推荐

获取本机正版windows10激活密钥,以及正版office

本方法面向的是以前买过笔记本电脑给你预装了正版系统,激活了正版office(一般是家庭版)的情况,其他情况请自行尝试。

qq_45774917的博客 2万+

iOS多线程:『NSOperation、NSOperationQueue』详尽总结

本文用来介绍 iOS 多线程中 NSOperation、NSOperationQueue 的相关知识以及使用方法。通过本文,您将了解到:NSOperation、NSOperationQueue 简介、操作和操作队列、使用步骤和基本使用方法、控制串行/并发执行、NSOperation 操作依赖和优先级、线程间的通信、线程同步和线程安全,以及 NSOperation、NSOperationQueue ...

欢迎来到一度's博客 496

F5 GTM DNS 实战指南:智能DNS的监控与健康检查机制

本文深入解析F5 BIG-IP GTM智能DNS的核心机制,重点阐述其监控与探针两大功能如何协同工作。监控器负责深度检查服务器应用健康,确保服务可用性;探针则实时测量网络路径质量,实现基于延迟的智能流量调度。文章通过实战配置步骤,指导如何构建逻辑架构、建立iQuery通信、配置业务级健康检查及探针,从而构建高可用、高性能的全局负载均衡解决方案。

weixin_29240711的博客 468

【iOS】NSOperation、NSOperationQueue

寒假学习了GCD,前几天学习了NSThread,今天来学习iOS 多线程中 NSOperation、NSOperationQueue 的相关知识以及使用方法。是苹果提供给我们的一套多线程解决方案。实际上 NSOperation是基于 GCD 更高一层的封装,完全面向对象。但是比 GCD 更简单易用、代码可读性也更高。需要配合来实现多线程。

weixin_72437555的博客 1708

因果强化学习:优化决策策略的因果方法

1. 背景介绍 1.1 传统强化学习的局限性 强化学习(Reinforcement Learning, RL)是一种通过与环境交互来学习最优决策策略的方法。然而,传统强化学习方法在面对复杂、动态和不确定的现实世界问题时,往往存在以下局限性: 数据效率低:传统强化学习方法

AI天才研究院 657

Open3D 使用CPD算法对点云配准【2025最新版】

Coherent Point Drift相干点漂移算法实现点云配准(python代码)博客长期更新,本文最近更新时间为:2025年2月2日。

点云侠的博客 8万+

【iOS】NSOperation,NSOperationQueue

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考我们可以通过自定义继承自NSOperation的子类,重写main或者start来定义自己的NSOperation对象。如果只是重写了main方法,有底层控制变更任务执行、完成状态以及任务退出。如果重写了start方法,需要自己控制任务状态。

weixin_61196797的博客 1417

KylinOS 离线安装 MinIO【图文步骤】

在国产操作系统 KylinOS 中安装 MinIO,详细步骤...

甘蓝的专栏 1534

NSOperationQueue简介

一、NSOperationQueue简介1.概述: NSOperationQueue类管理NSOperation对象的执行。NSOperationQueue可以被称为操作队列,NSOperation可以被称为操作。操作被添加到操作队列之后,操作队列会根据操作对象的优先级或者相互之间的依赖关系来执行操作。一个应用程序可以创建多个操作队列,每个操作队列分别管理若干操作。2.什么时候操作会被移除: 当操

有志者事竟成-程序员也可以创造优雅的艺术 626

猿创征文|SfM(Structure from Motion)学习之路

SfM全称Structure from Motion,译为运动恢复结构,是三维重建pipeline的一部分,又称稀疏重建,在摄影测量领域则称为空三(空中三角测量)。SfM的任务是,给定一系列具有一定重叠度的图像,去同时估计出拍摄每张图像时相机的的位姿(位置t和姿态R)和被拍摄物体或场景的稀疏点云。...............

zeeq的博客 1万+

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 363

[iOS开发]NSOperation & NSOperationQueue

NSOperation与NSOperationQueue简单学习

weixin_52192405的博客 999

pyradiomics使用——1. 医学影像的组学特征值(Radiomics Features)提取

文章目录1. 使用插件1.1 插件安装1.2 插件使用2. 使用python代码2.1 安装2.2 使用2.2.1 官方示例2.2.2 快速使用2.2.3 其它使用3. 组学特征字段意义说明 Github地址:https://github.com/AIM-Harvard/pyradiomics 官方文档地址:https://pyradiomics.readthedocs.io/en/latest/features.html 1. 使用插件 从pyradiomics的Github仓库中可以知道,pyradio

啷个哩个啷 7367

多线程NSInvocation+队列NSOperationQueue+NSBlockOperation

多线程NSInvocation+队列NSOperationQueue+NSBlockOperation **1 队列开启多线程的方法** NSOperationQueue * queue=[[NSOperationQueue alloc]init]; 1> 采用NSInvocation的子类NSInvocationOperation开启多线程 NSInvocati

498

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

多线程(三):NSOperation,NSOperationQueue,队列的最大并发数,队列的取消暂停和恢复,NSOperation操作依赖和监听,NSOperation线程间通信

NSOperation NSOperation的作用 配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤 1)先将需要执行的操作封装到一个NSOperation对象中 2)然后将NSOperation对象添加到NSOperationQueu...

weixin_42433480的博客 1177

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

使用NSOperationQueue简化多线程开发和队列的优先级

多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。 可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中

爱喝水的人 443

iOS学习笔记-118.多线程17——NSOperationQueue队列的取消、暂停、恢复

多线程17NSOperationQueue队列的取消暂停恢复 一队列的取消暂停恢复 1 暂停和恢复队列 2 取消队列的所有操作 3 取消和暂停必须是一个操作执行完了才起作用 二代码示例 三运行结果多线程17——NSOperationQueue队列的取消、暂停、恢复一、队列的取消、暂停、恢复1.1 暂停和恢复队列//暂停和恢复队列 - (void)setSuspended:(BOOL)b; // YE

qiwenmingshiwo的专栏 2943

iPhone多线程开发之线程队列NSOperationQueue与自定义Protocol

一.多线程对于iPhone应用程序开发很重要      在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面设计,利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成

woainike的专栏 1750

[iOS开发]<多线程【三】-NSOperation&操作队列NSOperationQueue>

NSInvocationOperation、NSBlockOperation 不能满足日常需求,我们可以使用自定义继承自 NSOperation 的子类。可以通过重写 main 或者 start 方法 来定义自己的 NSOperation 对象。重写main方法比较简单,我们不需要管理操作的状态属性 isExecuting 和 isFinished。当 main 执行完返回的时候,这个操作就结束了。先定义一个继承自 NSOperation 的子类,重写main方法。if(!

weixin_61639290的博客 940

NSOperationQueue(多线程请求队列)

我的控件都是拖控件的#import "ViewController.h"@interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageViewTp1; @property (weak, nonatomic) IBOutlet UIImageView *imageViewTp2; @propert

GuiGen_L的博客 755

[ios2]使用NSOperationQueue简化多线程开发和队列的优先级 【转】

多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。 可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中的线程可

jinjiantong的专栏 537

iOS多线程之NSOperation与NSOperationQueue的使用

NSOperation是常见的多线程方案,是对GCD的封装,采用OC方法,更加面向对象。NSOperation的使用:配合使用NSOperation(任务)和NSOperationQueue(队列)也可以实现多线程。 1、将需要执行的操作封装到一个NSOperation对象中 2、然后将NSOperation对象添加到NSOperationQueue中 3、系统自动将NSOperationQu

Rephontil的博客 3342

使用NSOperation与NSOperationQueue实现多线程

除了使用GCD实现多线程之外,NSOperation与NSOperationQueue也是一种非常简单的多线程实现方式。NSOperation与NSOperationQueue的基本原理如下: 1,NSOperationQueue: 代表一个 FIFO的队列,它负责管理系统提交的多个NSOperation,NSOperationQueue底层维护一个线程池,会按顺序启动线程来执行提交给该队列的N

930

【iOS】多线程NSOperation,NSOperationQueue

前段时间学习了有关于GCD的内容,这段时间对于的内容再进行一个学习和总结实际上是基于 GCD 更高一层的封装,完全面向对象。但是比 GCD 更简单易用、代码可读性也更高。需要配合来实现多线程。操作的定义:执行操作的含义,换句话说其实就是在线程中执行的那段代码,从GCD层面来类比就相当于我们的一个block在中,我们可以采用他的子类来进行一个封装的操作操作队列:这里的队列是值操作队列,就是用来存放操作的队列.不同于GCD中的一个调度队列的FIFO。

qq_73106050的博客 1505

使用NSOperationQueue简化多线程开发 (二) 队列的优先级

在使用NSOperationQueue简化多线程开发中介绍了iOS的操作队列使用方法。这里补充一下队列的优先级功能。 假设现在队列中有多个操作(NSOperation),现在再向队列中加入新的操作,并且希望新增加的操作排在未执行操作的最前面。这时就需要设置操作的优先级了。 编写了个最简单的NSOperation,头文件: #import @interface MyOp

CharlesBein_卞 1323
上一篇: 多线程之NSThread的使用
下一篇: 多线程之GCD(Grand Central Dispatch)
Mainning
博客等级 码龄12年 7粉丝 16原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值