| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4163 人关注过本帖
标题:关于C语言同步调用,回调,异步调用
只看楼主 加入收藏
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 10楼 Yang201511
怎么v两次等于2?没道理吧。
验证多线程我一般用死循环验证。
另:楼主的所谓阻塞或异步除了开线程外,还应该有事件响应机制,所谓异步其实就是把要处理的数据放到缓冲区排队,在排队期间主程序可做其他事,等到设备处理自己的数据时,主程序会响应相关的事件进行处理。

[ 本帖最后由 wmf2014 于 2015-9-10 08:44 编辑 ]

能编个毛线衣吗?
2015-09-10 08:37
lv740542742
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2015-9-9
收藏
得分:0 
回复 9楼 小王KING
感谢以上各位大神的回帖,以下是网上某位大神写的:
多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。多线程是实现异步的一个重要手段,但不是唯一手段,对以一个单线程程序也可以是异步执行的。
异步操作的优缺点
  因为异步操作无须额外的线程负担,并且使用回调的方式进行处理,在设计良好的情况下,处理函数可以不必使用共享变量(即使无法完全不用,最起码可以减少 共享变量的数量),减少了死锁的可能。当然异步操作也并非完美无暇。编写异步操作的复杂程度较高,程序主要使用回调方式进行处理,与普通人的思维方式有些初入,而且难以调试。
多线程的优缺点
  多线程的优点很明显,线程中的处理程序依然是顺序执行,符合普通人的思维习惯,所以编程简单。但是多线程的缺点也同样明显,线程的使用(滥用)会给系统带来上下文切换的额外负担。并且线程间的共享变量可能造成死锁的出现。

    我理解实现异步操作除了以上各位大神说的开启多线线程,对于单一线程可以通过回调的方式。如同这位大神所说异步回调与普通人的思维方式有些初入,不容易理解,各位大神是怎么理解这个异步回调?
2015-09-10 09:23
小王KING
Rank: 2
等 级:论坛游民
威 望:1
帖 子:29
专家分:69
注 册:2015-9-9
收藏
得分:0 
资料上说异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。我的理解是被调用方反过来去通知调用方,具体怎么实现的呢,能不能举个例子说明

不是被调用方反过来通知调用方,是消息的接受者和任务分配者来调用客户方(通过消息或者事件来触发这种调用,并非被调用方来通知调用方)

就类似下面的例子

int main()               /*他就是消息接受者和任务分配者*/
{
   while(1)
    {
    捕捉F1键是否按下      /*消息有很多种,就以键F1F2是否按下做为一条信息吧*/
    按下调用P1
    捕捉F2键是否按下
    按下调用P2              
    }
}

int p1()
{
   printf("1");
}

int p2()
{
    printf("2");
}
2015-09-10 13:44
lv740542742
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2015-9-9
收藏
得分:0 
回复 13楼 小王KING
但是这种方式依然是堵塞式调用吧
2015-09-10 14:02
小王KING
Rank: 2
等 级:论坛游民
威 望:1
帖 子:29
专家分:69
注 册:2015-9-9
收藏
得分:2 
异步,回调,同步调,就是书上写的概念
你一定要确定什么是堵塞式和非堵塞试,那我只能说,在非分时系统下都是堵塞式,因为没有分时的系统下,在一个任务没有完成或者退出的时候是切换不出来的。这种模式下,一个任务对CPU的资源有绝对占有权
2015-09-10 15:45
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:2 
回复 15楼 小王KING
也不全是。NMI类型中断可接管CPU。

能编个毛线衣吗?
2015-09-10 16:07
快速回复:关于C语言同步调用,回调,异步调用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016236 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved