摘要: System.IO.Pipelines 是一个新库,旨在使在 .NET 中执行高性能 I/O 更加容易。 该库的目标为适用于所有 .NET 实现的 .NET Standard。 System.IO.Pipelines 解决什么问题 System.IO.Pipelines 已构建为: 具有高性能的流数 阅读全文
posted @ 2019-10-22 22:14 amytal 阅读(1137) 评论(0) 推荐(0) 编辑
摘要: 管道为进程间通信提供了平台。 管道分为两种类型: 匿名管道。 匿名管道在本地计算机上提供进程间通信。与命名管道相比,虽然匿名管道需要的开销更少,但提供的服务有限。 匿名管道是单向的,不能通过网络使用。 仅支持一个服务器实例。 匿名管道可用于线程间通信,也可用于父进程和子进程之间的通信,因为管道句柄可 阅读全文
posted @ 2019-10-22 21:41 amytal 阅读(265) 评论(0) 推荐(0) 编辑
摘要: .NET 支持三个异步编程模式: 异步编程模型 (APM)(旧版) 基于事件的异步模式 (EAP)(旧版) 基于任务的异步模式 (TAP)(建议用于新开发) 异步编程模型 (APM)(旧版) 基于事件的异步模式 (EAP)(旧版) 基于任务的异步模式 (TAP)(建议用于新开发) 异步编程模型 (A 阅读全文
posted @ 2019-10-22 20:53 amytal 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 多线程处理需在编程时倍加注意。 对于多数任务,通过将执行请求以线程池线程的方式排队,可以降低复杂性。 死锁和争用条件 多线程处理解决了吞吐量和响应性问题,但引入此功能会带来新的问题:死锁和争用条件。 死锁 两个线程中的每一个线程都尝试锁定另外一个线程已锁定的资源时,就会发生死锁。 两个线程都不能继续 阅读全文
posted @ 2019-10-22 17:54 amytal 阅读(467) 评论(0) 推荐(0) 编辑
摘要: .NET Framework 在协作取消异步操作或长时间运行的同步操作时使用统一的模型。 此模型基于被称为取消标记的轻量对象。 调用一个或多个可取消操作的对象(例如通过创建新线程或任务)将标记传递给每个操作。 单个操作反过来可将标记的副本传递给其他操作。 稍后,创建标记的对象可使用此标记请求停止执行 阅读全文
posted @ 2019-10-22 17:28 amytal 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 多个线程可以调用单个对象的属性和方法时,对这些调用进行同步处理是非常重要的。 否则,一个线程可能会中断另一个线程正在执行的任务,可能使该对象处于无效状态。 其成员不受这类中断影响的类叫做线程安全类。 .NET 提供了几种策略,用于同步对实例和静态成员的访问: 同步代码区域。 可以使用 Monitor 阅读全文
posted @ 2019-10-22 16:17 amytal 阅读(429) 评论(0) 推荐(0) 编辑