`
avaj
  • 浏览: 237617 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

同步和异步

阅读更多
同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否则他不往下执行(死心眼)。

异步在一定程度上可以看做是多线程的(废话,一个线程怎么叫异步),请求一个方法后,就不管了,继续执行其他的方法。

比如一个文章系统里面,文章内容通常是字数非常多的,如果数据量大,打开会非常的慢,这个时候可以采取两种方法:

1、死心眼:一直等待要显示的数据全部取出来

标题、作者、来源、创建时间、关键字、点击次数、文章正文 

ok,全部取出

显示

碰上心急的用户,他会骂死你的。

2、异步:首先显示能够快速取出的部分:

标题、作者、来源、创建时间、关键字、点击数

显示

然后另外的一个线程等待取出文章的正文显示!

异步就是:做一件事情的同事,不影响做其他的事情。

-----------------------------------------
转帖一些文字:

所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。 
  
异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。 
  
并不是说谁好谁不好,只是同步的机制不适合在正式应用的项目当中(但自己测试还是可以的)

同步,就是实时处理,比如服务器一接收客户端请求,马上响应,这样客户端可以在最短的时间内得到结果,但是如果多个客户端,或者一个客户端发出的请求很频繁,服务器无法同步处理,就会造成涌塞。 

异步,就是分时处理,服务器接收到客户端请求后并不是立即处理,而是等待服务器比较空闲的时候加以处理,可以避免涌塞。 

同步和异步之分:
同步就是调用一个函数,直接函数执行完了才返回到调用函数
异步就是被调用函数初始化完后马上返回。

----------
同步就是(我死心眼)我等你(给我回答),异步就是(我很忙)我不等你(给我回答)

严格的说,异步还是有两种
一种是等,但是等的过程和同步不一样,等的时候可以做别的工作,但是程序的主线还是等待  WaitforSingleObject(hEvent,INFINTE,TRUE); 

另外一种是CALLBACK方式,这种异步是完全不等待,程序主线发出请求之后就干别的事情去了,完全不理会请求执行的如何。 

所有异步必然设计两个以上的线程(不然不存在异步的问题),第一种方式下,请求的后期工作是在发出请求的线程上执行,第二种方式下,后期工作可以在任何线程(通常是执行请求的线程上)完成。
分享到:
评论
1 楼 u012566958 2014-07-11  
mark

相关推荐

    C#TCP/IP同步和异步通信

    本文将深入探讨如何在C#编程环境中实现TCP/IP的同步和异步通信,并结合提供的“WindowsInternetServer”压缩包文件,讲解如何封装这两种通信方式。 首先,TCP/IP同步通信是指在发送数据前,必须等待接收方确认接收...

    C#Udp同步和异步编程源代码

    C#作为.NET框架的主要编程语言,提供了丰富的API来处理网络通信,其中包括UDP(User Datagram Protocol)协议的同步和异步编程。本文将深入探讨C#中如何实现UDP同步和异步编程,并提供相关知识点。 首先,UDP是一种...

    C# 同步与异步读写

    在编程领域,尤其是在高性能和高并发的场景下,理解和掌握同步与异步读写是非常关键的。C#作为微软开发的面向对象的编程语言,提供了丰富的API和特性来支持这两种操作模式。本篇文章将深入探讨C#中的同步与异步读写...

    同步和异步串口

    同步和异步串口 同步和异步串口是两种常用的串行通信方式,它们都是基于 RS232C 方式的体现,但它们的传输方式不同。异步传输是一种典型的基于字节的输入输出,指数据按每次一个字节进行传输,其传输速度较低。同步...

    C# Socket 同步和异步通信

    本篇将详细探讨C#中的Socket同步和异步通信,以及如何在Winform环境下实现这些功能。 首先,我们要理解什么是Socket。Socket,也称为套接字,是操作系统提供的网络编程接口,用于建立和维护网络连接,进行数据交换...

    同步和异步FIFO.zip

    同步和异步FIFO是数字电路设计中的重要概念,特别是在微处理器、嵌入式系统以及通信接口等领域的应用中。FIFO(First In First Out,先进先出)是一种特殊的存储结构,它按照数据进入的顺序进行存储,并按照数据进入...

    同步和异步的NSOperation的Demo

    在本Demo中,我们将深入探讨同步和异步操作的区别以及如何在实践中运用NSOperation。 首先,NSOperation是一个抽象基类,它代表一个可执行的任务或者操作。你可以通过继承NSOperation来创建自定义的操作类,或者...

    C# socket同步和异步通信示例

    本示例主要探讨了C#中Socket的同步和异步通信方式,这对于开发网络应用,尤其是服务端和客户端之间的数据交换至关重要。下面将详细解释这两种通信方式以及它们的应用场景。 1. **同步通信**: 同步通信是指发送方...

    同步和异步的套接字模块源码

    在"同步异步套接字.e"这个源码文件中,可能包含了同步和异步套接字的实现细节,比如如何创建套接字,如何进行连接,如何发送和接收数据等。通常,它会使用特定的API来设置套接字为同步或异步模式,例如在POSIX系统中...

    C# socket winform 同步和异步通信 点对点通信 聊天 互相学习

    C# socket winform 同步和异步通信。 只供个人学习。 请不要发布到网上,纯手工制作。 同步:socket通信,客户端是WinCe项目,Windows上也可以运行,需要打开exe.不能在解决方案中调试。 异步:公共通信类 ...

    java中的同步和异步的异同共4页.pdf.zip

    Java中的同步和异步是两种不同的处理方式,它们在多线程编程中起着至关重要的作用,尤其是在构建高效、响应迅速的应用程序时。同步和异步的主要区别在于它们如何管理和控制对资源的访问以及任务的执行顺序。 同步...

    同步和异步FIFOVerilog源码

    在Verilog中,我们可以用硬件描述语言来实现同步FIFO和异步FIFO。 同步FIFO是指读写指针由同一个时钟域控制,这种设计简单,但不适用于处理跨时钟域问题。同步FIFO的Verilog实现主要关注的是读写指针的管理和满空...

    实现同步和异步下载网络图片

    本文将深入探讨如何实现同步和异步下载网络图片,并将其显示在UIImageView中,以提高用户体验。 首先,我们来理解同步与异步的概念。同步操作意味着程序会等待任务完成后再继续执行后续代码,而异步操作则允许程序...

    socket同步和异步编程实例(C#)

    本实例主要关注的是同步和异步两种编程模式,这两种模式在处理并发连接和数据传输时有着显著的区别。 首先,同步Socket编程是一种阻塞式操作。在发送或接收数据时,程序会暂停执行,直到数据传输完成。例如,当一个...

    Socket同步和异步简介文档

    "Socket同步和异步简介文档" 在计算机网络编程中,Socket 是一种常用的通信机制,它允许不同的进程或线程之间进行通信。在 Socket 编程中,同步和异步是两个非常重要的概念,它们决定了通信的方式和效率。 同步...

    同步和异步复位的知识

    ### 同步和异步复位的知识 #### 一、引言 在数字电路设计中,复位(Reset)机制是确保系统初始化和错误恢复的关键组成部分。根据复位信号是否与系统时钟同步,可以将复位分为同步复位和异步复位两种类型。这两种...

    网络游戏-在同一个网络上调度同步和异步分组的方法和系统.zip

    《网络游戏-在同一个网络上调度同步和异步分组的方法和系统》 网络游戏,作为现代数字娱乐的重要组成部分,其核心技术之一就是如何有效地处理网络中的同步和异步问题。本资料详细探讨了在同一个网络上,如何高效地...

    Redis 和 Redis Sentinel (2.8) 的 .NET 客户端 包括同步和异步客户端 .zip

    包括同步和异步客户端。csredisCSRedis 是 Redis 和 Redis Sentinel (2.8.12) 的 .NET 客户端。包括同步和异步实现。安装 CSRedis 的最简单方法是通过包管理器控制台从NuGet安装PM> 安装包 csredis基本用法只要有...

Global site tag (gtag.js) - Google Analytics