原文:C# 线程手册 第三章 使用线程 实现一个数据库连接池(实战篇)

在企业级软件开发过程中,为了改善应用程序的性能需要通常使用对象池来控制对象的实例化。例如,在我们每次需要连接一个数据库时都需要创建一个数据库连接,而数据库连接是非常昂贵的对象。所以,为了节省为每次数据库调用都实例化一个数据库连接的资源,我们可以缓存并重用一些创建好的数据库连接对象并通过节省为每次数据库调用都创建一个数据库连接对象的时间和资源来大幅度提高程序性能。 对象池与图书馆很像。图书馆里维护 ...

2012-02-18 16:43 8 9712 推荐指数:

查看详情

C# 线程手册 第三章 使用线程 创建线程安全的包装器(实战篇)

在这部分我们将看两个大的例子。首先,我们将看一下创建线程安全的包装器的例子,然后看一下数据库连接池例子。 实现自己的线程安全包装器 实现自己的线程安全包装器主要基于你可能不想让类库中的每个类都是线程安全的,而使用同步也会带来性能问题的事实。你可能想要为开发人员提供一个是否使用一个同步类的选择 ...

Thu Feb 16 06:15:00 CST 2012 7 2842
C# 线程手册 第三章 使用线程 动同步

第三种同步策略关注动同步技术,.NET Framework 提供了一个经典的技术套件。他们给了程序员使用类似WIN32线程API的底层线程API来创建和管理多线程应用程序的能力。 下面的表显示了System.Threading 命名空间中可以用于动同步的一些类 ...

Fri Feb 10 20:00:00 CST 2012 1 3403
C# 线程手册 第三章 使用线程 .NET 同步策略

公共语言架构提供了三种策略来同步访问实例和静态方法以及实例属性,这三种策略是: 1. 同步上下文 2. 同步代码区域 3. 动同步 同步上下文 上下文是一系列对象集合在执行时常见的属性或者使用规范。可以被添加的上下文属性包括同步,线程关联以及事务。简而言之,一个上下文 ...

Fri Feb 03 04:45:00 CST 2012 3 2761
C# 线程手册 第三章 使用线程 .NET 对同步的支持

.NET Framework 提供了很多System.Threading,System.EnterpriseService 和 System.Runtime.Compiler 命名空间中的很多类来帮助程序员开发线程安全代码。下表简要地描述了.NET Framework 中的一些同步类 ...

Mon Jan 30 15:24:00 CST 2012 4 3134
C# 线程手册 第三章 使用线程 Monitor.TryEnter()

Monitor 类的TryEnter() 方法在尝试获取一个对象上的显式锁方面和 Enter() 方法类似。然而,它不像Enter()方法那样会阻塞执行。如果线程成功进入关键区域那么TryEnter()方法会返回true. TryEnter()方法的三个重载方法中的两个以一个timeout类型值 ...

Mon Feb 06 06:08:00 CST 2012 9 8445
C# 线程手册 第三章 使用线程 ReaderWriterLock 类

一个ReaderWriterLock 类定义一个实现单写多读语义的锁。这个类通常用在能被多个线程读取但是仅能被一个线程写入的文件操作时使用。下面是ReaderWriterLock类中的四个主要方法: a. AcquireReaderLock(): 这个重载方法获取一个读者锁,接受一个整型 ...

Wed Feb 08 05:53:00 CST 2012 1 5351
C# 线程手册 第三章 使用线程 小心死锁

尽管使用线程同步对线程安全来说是必须的,但是如果没有用好的话就可能导致死锁。因此,理解什么是死锁并知道如何避免死锁是非常重要的。当两个或两个以上的线程等待两个或多于两个锁被释放然后程序中的逻辑导致锁永远都不会被释放时死锁就发生了。图3描述了一个典型的死锁场景。 图3 在上图中,线程 ...

Sun Feb 12 06:14:00 CST 2012 3 6160
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM