异步编程(一):什么是异步编程
2019-02-23 本文已影响0人
曦航老袁
每次启动程序时,系统会自动在内存中创建一个进程。进程是构成运行程序的资源的集合。这些资源包括虚地址空间、文件句柄和许多其他程序运行所需的资源。
在进程的内部,系统会创建一个称为线程的内核(Kerne )的对象,它代表了真正的运行程序。线程是执行线程的简称。当进程建立,系统就会由主程序的Main方法的第一行语句处开始了线程的执行。
- 在默认情况下,一个进程只包含一个线程,即从程序的开始,一直执行到结束。
- 其实线程是可以派生其他线程,在任意时刻,一个进程都可以包含不同状态的多个线程,来执行程序的不同部分。
- 如果一个进程拥有一个线程,它们将共享进程的资源。
- 系统为处理器规划的执行单元,是线程而非进程。
在很多时候,我们在进程中使用单一线程从头到尾地执行程序,这种简单模式会导致性能和用户体验另人难以接受。
比如程序向另外一台服务器发出请求,由于网络等外部原因,此种通信任务往往会耗费大量时间,进程如果在此期间仅仅只能等待网络或网络上其他机器的响应,将严重地降低了性能。程序不应该浪费等待的时间,而应该更加高效地利用,在等待的时间执行其他任务,回复到达后在继续执行第一个任务。
如果程序调用某个方法,等待其执行全部处理后才能继续执行,我们称其为同步的。相反,在处理完成之前就返回调用方法则是异步的。
我们在编程语言的流程中添加了异步控制的部分,这部分的编程可以称之为异步编程。