什么是异步?与多线程的区别?

OROCHIORI568 2010-05-06 10:08:00
异步和多线程应该是两个概念吧。
有个多线程的例子,如下:

public DDD aaa;

bbb = new Thread(new ThreadStart(aaa.ccc));
bbb.Start();
然后在类DDD中写的ccc方法
public class DDD
{
public void ccc()
{
//todo
}
}


希望高手举个类似如上代码的异步的例子?
感谢!!感谢!!
...全文
6979 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
u03013106 2012-07-18
  • 打赏
  • 举报
回复
总结性发言,可不可以这样理解:
异步是基于系统或者处理器的行为,真正的实现应该也是多线程
多线程是编码者手动控制,自己管理的
yuzhulinkeji 2011-10-05
  • 打赏
  • 举报
回复
大家 可以从语文意思上来理解 异步就是不同的步调 各走各的。 不必像阅兵时那样 步调整齐。 多线程就是 很多道路,就像是不同的人走不同的路,就像是一个公司,一个开发团队,不同的人干不同的事。但到了最后,大家
都把自己的该干的事做好。那么对于整个项目的进度就快了。对于公司来说,人力资源得到了充分利用。而对于计算机来说,系统资源就得到最好的利用。(其实,我感觉最开始造这些专业名词时,也是基于语文角度来说的,要不那就随便造个词就完了是吧)
imissyouyw 2011-04-30
  • 打赏
  • 举报
回复
jin168 2011-04-29
  • 打赏
  • 举报
回复
刚刚接触感觉不错
OROCHIORI568 2010-05-07
  • 打赏
  • 举报
回复
感谢各位回帖!!!!!学习了
牛叔 2010-05-06
  • 打赏
  • 举报
回复
mark
以后学习
INGDI 2010-05-06
  • 打赏
  • 举报
回复
猜来猜去,不如看看书
lsq667 2010-05-06
  • 打赏
  • 举报
回复
关注,学习下
  • 打赏
  • 举报
回复
[Quote=引用楼主 orochiori568 的回复:]
异步和多线程应该是两个概念吧。
有个多线程的例子,如下:

C# code

public DDD aaa;

bbb = new Thread(new ThreadStart(aaa.ccc));
bbb.Start();
然后在类DDD中写的ccc方法
public class DDD
{
publi……
[/Quote]这个太简单,所以看不出太多的东西。
using System;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DDD aaa = new DDD();
((Action)aaa.ccc).BeginInvoke(null, null);
Console.WriteLine("干完了吗?");
Console.ReadKey();
}
}

public class DDD
{
public void ccc()
{
Console.WriteLine("刚刚干完。");
}
}

}
简单来说可以总结为一个原则:异步编程中开发者不用操心线程,代码中不会出现线程语句。
Alden 2010-05-06
  • 打赏
  • 举报
回复
两者没有直接关系。
异步是针对当前线程处理的时序上的概念,例如我让别人帮我拿个东西,我不会什么都不做的傻等他。
多线程式针对同步完成多项任务。不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。多线程是在同一时间需要完成多项任务的时候实现的。
传说中的张 2010-05-06
  • 打赏
  • 举报
回复
mark
关注
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 linux7985 的回复:]
什么叫多线程,我老搞不明白,所谓不明白,不明白,多线程是一个名词,还是一个动词?

是指一种活动,还是指一种名称,

我感觉多线程,应该是多个线程之间有交互的,相互协作的工作过程,应该才叫多线程吧,开两个无关的线程,应该不叫做多线程吧,

如果按这样的理解,异步和多线程就有很大区别了,
[/Quote]中国话,自古就有用名词当动词用的习惯。
  • 打赏
  • 举报
回复
所谓异步,是由.net系统来在后台做工作,做完后回调你的代码。至于如何创建线程、何时调度线程、如何优化系统线程池,这是.net系统的事,你用不着越俎代庖。

打个比方,异步就好象是五星级酒店服务(自动化比较高、意外比较少),而传统的多线程就好象是路边摊个人开的只有10几个房间的小旅馆(你要做好自助和解决社会矛盾的准备)。
qiuqingpo 2010-05-06
  • 打赏
  • 举报
回复
学习一下!
烈火蜓蜻 2010-05-06
  • 打赏
  • 举报
回复
什么叫多线程,我老搞不明白,所谓不明白,不明白,多线程是一个名词,还是一个动词?

是指一种活动,还是指一种名称,

我感觉多线程,应该是多个线程之间有交互的,相互协作的工作过程,应该才叫多线程吧,开两个无关的线程,应该不叫做多线程吧,

如果按这样的理解,异步和多线程就有很大区别了,
skydhx 2010-05-06
  • 打赏
  • 举报
回复
引用楼上的 朋友
vrhero 2010-05-06
  • 打赏
  • 举报
回复
异步是个时序的概念,与同步相对...你要是认真学过计算机基础课程没理由不知道...

多线程和异步没有直接关系,只是程序可以利用多线程实现异步调用...通过回调函数或委托实现的异步调用都是利用多线程的...

在其他领域,异步和多线程八杆子打不着...
holydie 2010-05-06
  • 打赏
  • 举报
回复
关注,学习
异步是需要多线程来实现的吧
很模糊的感觉,不知道说的对不对
ginni215 2010-05-06
  • 打赏
  • 举报
回复
具体的实现本质不太清楚,不过在使用的过程中发现似乎,委托、异步都是通过多线程来实现的~
ZSW53362465 2010-05-06
  • 打赏
  • 举报
回复
这个问题我之前也疑惑了很久很久很久很久
后来做的东西多了才慢慢领悟到
我感觉可以用一句话来说
多线程是一种技术,而异步就是用多线程来实现的
加载更多回复(16)

110,578

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧