多线程刷新

JSON解析的网络请求中;

//1.获取访问路径

NSString *[email protected]"http://1.studyios.sinaapp.com/gyxy.php?a=qq";

//2.封装URL

NSURL *url=[NSURL URLWithString:path];

//3.创建请求命令

NSURLRequest *request=[NSURLRequest requestWithURL:url];

//4.创建会话对象   通过单例方法实现的

NSURLSession *session=[NSURLSession sharedSession];

//5。实行会话任务 通过request请求  获取data对象

NSURLSessionDataTask *task=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

//6、json 解析

NSArray *arrJson=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];

NSLog(@"%@",arrJson);

}];

//    7、真正的执行任务

[task resume];

得到集合 arrJson;

向把集合放在tableView上会显示不出来;这是在teibleView上是多线程请求需要用到主线程刷新数据

修改后:

//1.获取访问路径

NSString *[email protected]"http://1.studyios.sinaapp.com/gyxy.php?a=qq";

//2.封装URL

NSURL *url=[NSURL URLWithString:path];

//3.创建请求命令

NSURLRequest *request=[NSURLRequest requestWithURL:url];

//4.创建会话对象   通过单例方法实现的

NSURLSession *session=[NSURLSession sharedSession];

//5。实行会话任务 通过request请求  获取data对象

NSURLSessionDataTask *task=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

//6、json 解析

NSArray *arrJson=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];

NSLog(@"%@",arrJson);

    dispatch_async(dispatch_get_main_queue(), ^{

      [self.table reloadData];

    });

}];

//    7、真正的执行任务

[task resume];

这样就能在tableView上显示了。

时间: 2024-12-20 17:12:52

多线程刷新的相关文章

android 多线程刷新界面

[1].[代码] [Java]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 7

java多线程快速入门(十五)

使用violate关键字解决了变量的可见性问题(volatile让多线程刷新falg的值) package com.cppdy; class MyThread11 extends Thread { //volatile让多个线程刷新falg的值 public volatile boolean falg = true; @Override public void run() { System.out.println("子线程开始执行啦"); while (falg) { } System

使用二级指针在多线程进行刷新操作

多线程程序中,我们经常会遇到这种情况,主线程启动时加载一些参数到内存中的某个对象或者数据结构中,将这个对象或数据结构作为参数传入各个子线程中,为了避免对象的复制与拷贝,往往传入的是指针,子线程启动,进行业务逻辑处理,需要根据key值获取hashtable中的value,value = m_pParam->get(key),代码如下所示 //用hashtable保存程序运行所需的参数 hashtable<key, value> hashParam; void loadParam(hasht

关于多线程工作内存何时会刷新的问题探讨

JMM 用来定义程序中变量的访问规则,定义者,想要屏蔽掉不同的硬件和系统造成的内存访问差异. 之前了解的JMM空也曾提到工作内存的概念,每个线程都有自己的工作内存,所有的变量多存在主内存,工作内存存储的是各个线程用到的变量 主内存的副本拷贝,工作内存之间不能直接操作对方工作内存的变量,要通过主内存作为中间介,各个线程只能操作各自的工作线程变量,无法直接操作主内存变量. 然后就是就是定义了8中原子操作,用来控制变量,分别是 lock.unlock,read.load.use.assign.stor

多线程while(!state){}有问题,volatile优化,sleep睡着之后唤醒,刷新变量缓存

https://ask.csdn.net/questions/664596 https://www.cnblogs.com/mengdd/archive/2013/02/16/2913659.html 原文地址:https://www.cnblogs.com/CreatorKou/p/11361186.html

IOS多线程-个人理解

一.多线程 每一个iOS应用程序中都有一个主线程用来更新UI界面.处理用户的触摸事件.解析网络下载的数据,因此不能把一些太耗时的操作(比如网络下载数据)放在主线程中执行,不然会造成主线程堵塞(出现界面卡死,防止界面假死),带来极坏的用户体验. iOS的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程异步编程是防止主线程堵塞,增加运行效率的最佳方法 异步:多个线程 同时执行 同步:线程排队执行并行 ->异步串行->同步 多线程技术 1.异步下载数据,是多线程技术的一个比较常见的应用场

从JAVA多线程理解到集群分布式和网络设计的浅析

对于JAVA多线程的应用非常广泛,现在的系统没有多线程几乎什么也做不了,很多时候我们在何种场合如何应用多线程成为一种首先需要选择的问题,另外关于java多线程的知识也是非常的多,本文中先介绍和说明一些常用的,在后续文章中如果有必要再说明更加复杂的吧,本文主要说明多线程的一下几个内容: 1.在应用开发中什么时候选择多线程? 2.多线程应该注意些什么? 3.状态转换控制,如何解决死锁? 4.如何设计一个具有可扩展性的多线程处理器? 5.多线程联想:在多主机下的扩展-集群? 6.WEB应用的多线程以及

多进程与多线程差别

 在Unix上编程採用多线程还是多进程的争执由来已久,这样的争执最常见到在C/S通讯中服务端并发技术 的选型上,比方WEBserver技术中.Apache是採用多进程的(perfork模式,每客户连接相应一个进程,每进程中仅仅存在唯一一个运行线程), Java的Web容器Tomcat.Websphere等都是多线程的(每客户连接相应一个线程,全部线程都在一个进程中). 从Unix发展历史看,伴随着Unix的诞生进程就出现了.而线程非常晚才被系统支持,比如Linux直到内核2.6.才支持符合P

OS X 和iOS 中的多线程技术(上)

OS X 和iOS 中的多线程技术(上) 本文梳理了OS X 和iOS 系统中提供的多线程技术.并且对这些技术的使用给出了一些实用的建议. 多线程的目的:通过并发执行提高 CPU 的使用效率,进而提供程序运行效率. 1.线程和进程 进程 什么是进程 进程是指在计算机系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行中其专用且受保护的内存空间内 比如同时打开 Xcode .Safari ,系统就会分别启动两个进程 通过活动监视器可以查看Mac系统中所开启的进程 线程 什么是线程 一