摘要: 5.4领导者/追随者(Leader/Follower) 1.问题 多线程是实现并发处理多事件的应用程序的一种常用技术。然而,很难实现高性能的多线程服务器应用程序。这些应用程序通常处理大量同时到达的多类型事件。为了有效地处理这种问题,有三个强制条件必须解决: 1)服务请求可以来自为每个已连接的客户机分 阅读全文
posted @ 2021-09-03 16:43 codestacklinuxer 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 5.5线程特定的存储器(Thread-Specific Storage) 1.问题 为了避免竞争条件、资源耗尽和死锁多线程应用程序需要复杂的并发控制协议,从而难以编程。由于存在加锁开销,所以多线程应用程序的性能往往比不上单线程应用程序,事实上它们的性能可能更糟,特别是在多处理平台上。在并发程序中有两 阅读全文
posted @ 2021-09-03 16:40 codestacklinuxer 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 5.3半同步/半异步 1.问题 并发系统通常既包含异步处理服务,又包含同步处理服务。系统程序员有充分的理由使用异步特性改善性能。异步程序一般更高效,因为可以直接将服务映射为异步机制,如硬件中断处理程序或者软件信号处理程序。 相反,应用程序员也有充分的理由使用同步处理简化他们的编程强度。通常同步程序更 阅读全文
posted @ 2021-09-03 16:39 codestacklinuxer 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 5.2监视器对象 1.问题 许多应用程序包含其方法被多个客户机线程并发调用的对象。这些方法通常修改其对象的状态。因此,为了使这些并发应用程序能正确地执行,有必要对对象的访问进行同步和调度。对于这个问题,必须考虑四个强制条件: 1)为了事务分离并避免对象状态不受控制地修改,面向对象编程人员习惯于只通过 阅读全文
posted @ 2021-09-03 16:38 codestacklinuxer 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 并发模式 为在多线程或进程间共享资源而设计的2种模式: ·主动对象设计模式将方法执行和方法调用分离开来。目的是加强并发和简化对驻留在自身控制线程中的对象的同步访问。 ·监视器对象设计模式同步化并发方法的执行,以确保同一时刻在对象内部只有一个方法运行。它也允许对象的方法协作调度方法的执行顺序。 下面2 阅读全文
posted @ 2021-09-03 16:37 codestacklinuxer 阅读(61) 评论(0) 推荐(0) 编辑