个人对于异步和多线程的关系的理解分享_IOS

个人的理解是这样的:

1.  异步通信的意思是,当A发送完消息之后,不等待B的回应,继续执行之后的程序.在将来的某个时刻,A再来检查是否收到B的回应。

     异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。

2. 多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。

3. 异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。

异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。

时间: 2024-07-31 17:05:35

个人对于异步和多线程的关系的理解分享_IOS的相关文章

编程-多核CPU和多线程的关系

问题描述 多核CPU和多线程的关系 CPU的多核,和多线程编程有关系吗?多线程编程是以多核的CPU为基础的吗 解决方案 要想利用多个cpu工作,必须使用多线程,包括多个单线程的进程. 但是多线程未必能利用到多个cpu. 即便没有多cpu,一些程序仍然可以从多线程中获益,比如说,多线程下载,多线程可以隐藏单个线程的网络延迟,提高网络使用效率,加快下载,以及避免长时间计算或者等待造成界面挂起. 解决方案二: 多线程和多少个cpu不是有什么联系,就是单核cpu也一样能做多线程,那么cpu多了,可能就会

servlet-Servlet与多线程的关系是什么?

问题描述 Servlet与多线程的关系是什么? 我知道Servlet是一个线程不安全的实例化的对象,JMM模型里线程有缓存和堆,堆是线程自己专用的. 为了安全打印某个用户信息,我就在Servlet的方法里新建一个局部变量 print. 如果A.B俩用户同时访问这个Servlet, 那么Servlet方法内的局部变量print是在Servlet实例的堆里面? 还是分别在AB两个线程的堆里面啊? 这个过程理解为AB两个线程的run方法里同时用了这个Servlet实例? 还是理解为AB两个线程的run

同步,异步,多线程,你怎么看?

原文:同步,异步,多线程,你怎么看?[原创] 讲解同步与异步的帖子多如牛毛,个人的理解,简单地说同步就是串行,异步就是并行.同步的情况下,A调用B,A等B执行完成后接着执行,自始至终只有一个线程在运行:而异步时,A调用B,B执行,A也继续执行,这个过程中有两个线程在运行.本文通过winform下的一个实例讲解同步与异步的差别,本文的例子很简单,适合初学者. 1.同步 大家应该经常碰到这种情况,点击界面上某个按钮或者某个控件后界面卡死的情况,个人觉得其中一个原因可能是主线程的问题,界面主线程在后台

jQuery Ajax 异步加载显示等待效果代码分享_jquery

AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和XHTML来表示. 2) 使用DOM模型来交互和动态显示. 3) 使用XMLHttpRequest来和服务器进行异步通信. 4) 使用javascript来绑定和调用. 通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Reques

PHP中实现异步调用多线程程序代码

比如现在有一个场景,给1000个用户发送一封推荐邮件,用户输入或者导入邮件账号了提交服务器执行发送.  代码如下 复制代码 <?php $sqlserver/42852.htm target=_blank >count=count($emailarr); for($i=0;$i<$count;$i ) { sendmail(.....);//发送邮件 } ?> 这段代码用户体验极差,也无法实际运用,首先发送这么多邮件会产生服务器运行超时,其实漫长的用户等待时间会让用户对系统产品怀疑

spring的申明事务和多线程的关系?

问题描述 一直觉得事务就很麻烦,再加上多线程,觉得更晕了,不知道大家有什么好的理解?如果有一个方法A(), 声明事务为PROPAGATION_REQUIRED.public void A() { new JdbcTemplate(): ... insert a row in database}A不是线程安全的,可能被多线程调用.那是不是有可能有多个A()方法在一个transaction中.那么一行插入不成功,就有可能多行插入不成功?但是我做了实验,结果好像不是这样,好像每次A的调用,都在自己的t

Servlet3中的AsyncContext异步和多线程异步有什么区别

问题描述 我如果想异步向页面输出,则可以使用Servlet3中的AsyncContext.也可以在Servlet中另外启动一个多线程处理,让主线程先返回页面两种方式的代码如下public class ListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletRespons

在IOS中为什么使用多线程及多线程实现的三种方法_IOS

多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径. 在系统级别内,程序并排执行,程序分配到每个程序的执行时间是基于该程序的所需时间和其他程序的所需时间来决定的. 然而,在每个程序内部,存在一个或者多个执行线程,它同时或在一个几乎同时发生的方式里执行不同的任务. 概要提示: iPhone中的线程应用并不是无节制的,官方给出的资料显示,iPhone OS下的主线程的堆栈大小是1M,第二个线程开始就是512KB,并且该值不能通过编译器开关或线程API函数来更改,只有主线程有直接修改UI

MQ、JMS以及ActiveMQ 关系的理解

Best-text mb-10代码  ms 的一个标准或者说是一个协议.  通常用于企业级应用的消息传递. 主要有topic 消息(1 对多), queue 消息(1对1).   activemq 是一个jms 的实现, apache 出的.    另外还其它的实现 jboss 啦啥的...   MQ简介: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.消息传递