text:
Sử dụng Singleton Pattern trong C#Posted On Tuesday, May 27, 2008 at at 8:18 PM by Van Nguyen
- Trong loạt bài dịch về Spring.NET tôi đã có cơ hội chia sẽ với các bạn một mẫu Design Pattern khá hấp dẫn là Singleton. Sau bài viết đó, tôi cũng muốn viết thêm một ít về mẫu thiết kế này. Thật may khi tôi vô tình tìm được một bài viết rất hay về chủ đề này. Trong bài, tác giả đề cập đến khá nhiều vấn đề lí thú khác có liên quan đến lập trình, đặc biệt là tính lazy-load và thread-safe của đối tượng. Vì vậy, tôi quyết định nấu nướng nó, 1 là để chia sẻ với những ai quan tâm, 2 là để nâng cao khả năng đọc hiểu của tôi , và tất nhiên là khả năng viết lách nữa hê hê .
- Trước khi đọc bài này, các bạn nên nắm trước và hiểu một số thuật ngữ, từ khóa và kĩ thuật trong C# như : base class, sub class, constructor, member, seal, private, public, protected, static, instance, reference, property, performance, thread, multi-thread, lock, lazy-load. Đa số từ khóa trên theo tôi nghĩ các bạn học lập trình đều đã biết đến, cá nhân tôi cũng phải tự tìm hiểu trong quá trình làm việc khi lần đầu tiên gặp những kĩ thuật như lock và lazy-load . Cho nên trước khi viết, tôi xin giới thiệu sơ qua hai kĩ thuật này. Ngoài ra, trong bài viết có khi tôi sử dụng chữ “instance” và “đối tượng”, hai từ này đều có ý nghĩa vai trò như nhau. Tôi nghĩ có một số từ tôi sẽ giữ nguyên tên tiếng Anh mà không dịch ra tiếng Việt như: thread, multi-thread, performance, …. vì khi được dịch ra đọc thấy nó rất chuối , hơn nữa những từ tiếng Anh này cũng khá quen thuộc với chúng ta, ai làm lập trình cũng có thể hiểu được. Và cuối cùng, trong bài dịch tôi có thêm vào một số ý kiến của mình, các bạn sẽ dễ dàng phân biệt các ý kiến của tôi với phần dịch khi thấy icon sau " "
Singleton Pattern
- Khi lập trình multi-thread, chắc chắn các bạn sẽ gặp phải vấn đề đau đầu gọi là đồng bộ hóa tiến trình. Lúc trước tôi học về vấn đề này trong trường đại học ở môn “Hệ điều hành nâng cao”. He he lúc trước lười lắm nên khi đi thi không được điểm cao, cả lớp toàn 9 với 10 riêng tôi được 7. Vì đua đòi với chúng bạn, tôi quyết định thi lại môn này với hi vọng nâng điểm lên. Xui thay đến lần thi thứ 2 tôi bị bệnh khá nặng, thế là phải bỏ thi. Đến học kì sau thi lại thì chỉ được 5 điểm, chả hiểu. Thi lần nữa để hi vọng nâng điểm thì lại được 7. Trời ko thương người hiền lành mà, nhưng cũng nhờ vậy mà tôi nắm được khá rõ kĩ thuật lập trình thread, lỡ đứa nào có hỏi cũng hãnh diện nói :”Tao đã từng lập trình MultiThread, biết viết chương trình chat qua mạng nhé”. Viết xàm hơi nhiều rồi, giờ viết thiệt : Lock là một kĩ thuật trong lập trình multi-thread, gọi là “Đồng bộ hóa tiến trình”, hiểu đơn giản là kĩ thuật đó giúp hai hoặc nhiều thread trong chương trình có thể làm việc nhịp nhàng với nhau. Giả sử trong chương trình của bạn có một biến đếm toàn cục, nhiều thread trong chương trình sẽ thay phiên nhau truy xuất giá trị biến đó và tăng giá trị nó lên 1 đơn vị. Nếu có 2 thread cùng truy xuất giá trị một lúc và cùng tăng điểm đồng thời thì sẽ có trường hợp biến đếm chỉ tăng được 1 đơn vị, vì lần tăng của thread này sẽ đè giá trị mà thread kia vừa cập nhật cho biến đếm. Do đó đám đồ đệ của anh Bill Gate mới nghĩ ra cách để giải quyết vấn đề trên cho trong .NET, và Lock chỉ là một trong rất nhiều kĩ thuật giúp ta đồng bộ hóa tiến trình. Tuy nhiên trong phạm vi bài này chúng ta chỉ nói chính về mấu thiết kế Singleton nên tôi hi vọng với những giải thích ngắn gọn trên, các bạn đã có được khái niệm cơ bản về lock, hiểu nó là gì và nó có thể làm gì cho chúng ta.
- Kế tiếp, xin nói sơ qua về lazy-load hay lazy initialization. Đó là một kĩ thuật giúp chúng ta delay lại qua trình tạo ra đối tượng, quá trình tính toán, … và chỉ thực thi quá trình đó đến khi nào nó thực sự cần đến. Về nguyên tắc, kĩ thuật này có thể đạt được bằng cách sử dụng một cờ để kiểm tra xem quá trình của chúng ta có diễn ra hay chưa, nếu chưa thì sẽ thực hiện còn nếu đã làm rồi thì chỉ cần trả về giá trị được lưu của lần thực thi trước đó hoặc đơn giản chẳng làm gì cả. Trong thực tế thì kĩ thuật này sẽ được áp dụng nhiều trong các framework ORM. Tôi xin nói một ví dụ: giả sử bạn có 1 database với 2 bảng lưu thông tin lớp học và học sinh với ràng buộc một lớp học có thể có nhiều học sinh. Tương ứng với 2 bảng trong cơ sở dữ liệu thì trong chương trình của bạn có 2 lớp là Class và Student. Trong lớp Class sẽ có một member StudentList thuộc kiểu List
- Mẫu thiết kế Singleton là một trong những mẫu thông dụng và được sử dụng rộng rãi nhất trong kĩ thuật lập trình. Về nguyên tắc, một Singleton là một lớp chỉ cho phép một đối tượng tương ứng được tạo, và tất nhiên nó cũng phải có một public member để những đối tượng khác có thể truy xuất instance Singleton này. Thông thường, cách thiết kế lớp theo kiểu Singleton sẽ không sử dụng hàm khởi tạo có tham số, nếu không thì một yêu cầu khởi tạo đối tượng với các tham số khác nhau sẽ gây rắc rối. (Nếu cùng một instance được gọi bằng hàm getInstance với những tham số khác nhau thì ta dùng mẫu thiết kế Factory Method sẽ hợp lý hơn) Bài viết này chỉ đề cập đến những Singletons với hàm khởi tạo không tham số, hay hàm getInstance() không có tham số. Nói chung, khi người ta sử dụng Singleton vì tính lazy-load của nó, instance của lớp sẽ không cần được tạo đến khi nào nó thật sự cần thiết.
- Có khá nhiều cách để thiết kế Singleton trong C#. Tác giả sẽ thể hiện từng cách từ đơn giản đến phức tạp, bắt đầu bằng cách thông dụng nhất- cách không có tính thread-safe (an toàn khi sử dụng với thread) đến những cách có tính thread-safe và hỗ trợ lazy-loaded; đơn giản cũng như performance cao. Trong những ví dụ code mẫu ở trong bài viết, tác giả sẽ sử dụng từ khóa private mặc định cho các member của lớp. Trong nhiều ngôn ngữ khác như Java, có thể sẽ khác đi đôi chút tuy nhiên từ khóa private vẫn nên được sử dụng.
- Dù có nhiều cách thực hiện, tất cả những phương pháp tôi giới thiệu ở trong bài viết này đều có thể sử dụng một trong những điều sau để thiết kế Singleton:
• Có sử dụng một hàm khởi tạo không tham số và được khai báo private, làm như vậy sẽ không cho những lớp khác khởi tạo nó. Ngoài ra, khai báo hàm khởi tạo private cũng không cho những lớp con kế thừa, vì nếu một lớp được thiết kế theo kiểu Singleton thì nó có thể có hai hoặc nhiều lớp con và nếu mỗi lớp con đều có thể tạo ra instance thì mẫu thiết kế Singleton sẽ không còn đúng. Tôi chưa hiểu rõ lắm ý tác giả là thế nào. Có thể nếu một lớp Singleton có nhiều lớp con thì trong một lúc hệ thống có thể có nhiều hơn 1 đối tượng cùng thuộc về base class là Singleton, tất nhiên trong số những đối tượng đó sẽ có những instance là kiểu của subclass và chỉ một instance duy là kiểu base class thôi (Tính đa hình - polimorphism của OOP). Dù sao đi nữa, tôi vẫn thích cách khai báo protected hơn. Nếu chúng ta dùng đúng cách thì không có gì phải lo ngại, cũng giống như điện vậy thôi, có thể gây hỏa hoạn hoặc chết người nhưng nhà nhà đều dùng điện, người người dùng điện .
• Có sử dụng lớp sealed (một lớp được khai báo với từ khóa seal sẽ không cho phép tạo lớp con kế thừa nó). Điều này đôi khi không cần thiết theo như cách làm tác giả nói ở trên nhưng nó có thể giúp trình dịch JIT (Just – In – Time) tối ưu hóa chương trình.
• Có thể sử dụng một biến static để giữ instance duy nhất của lớp.
• Có thể sử dụng một biến public static để giúp các lớp khác sử dụng biến instance Singleton duy nhất được nói ở cách 3.
- Xin nhắc lại một lần nữa là trong tất cả các cách làm trên đều có sử dụng một public static property tên là Instance ( đây chỉ là cách đặt tên cho property, bạn có thể đặt tên nào tùy thích nhưng tên Instance có vẽ như ngắn gọn và hay nhất) với mục đích giúp chúng ta sử dụng instance duy nhất của lớp. Tuy nhiên nếu thích sử dụng method theo kiểu getInstance() thì vẫn có thể chuyển qua cách đấy dễ dàng mà không ảnh hưởng đến tính thread-safety hay performance.
First version – not thread-safe.
public sealed class Singleton
{
static Singleton instance=null;
Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
- Như đã giới thiệu trước đây, cách làm trên là không đạt được nguyên tắc thread-safe. Hai thread khác nhau có thể cùng một lúc chạy đến đoạn code trên, kiểm tra xem biến instance có bằng null hay không và thấy là nó null thật nên cùng tạo ra instance trong mỗi thread, như vậy là không đúng với ý tưởng thiết kế của Singleton. Chúng ta cũng dễ dàng thấy rằng biến instance trong đoạn code trên cũng có thể được khởi tạo trước khi biểu thức kiểm tra null được tính, nhưng vì các thread khác nhau đều có thể đọc bộ nhớ cùng một lúc, nếu không có một cơ chế kiểm soát để các thread khi truy xuất vùng nhớ tuần tự thì sẽ có trường hợp 2 hoặc nhiều thread đều kiểm tra và thấy biến instance đang là null và tạo ra hàng loạt các instance mới. Thiên hạ đại loạn.
Second version – simple thread safety
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
- Cách làm thứ hai này là hoàn toàn thread-safe. Nếu bạn đã đọc phần giới thiệu ở trên của tôi về lock , bạn sẽ thấy trong đoạn code có sử dụng một shared object để lock phần code kiểm tra null của biến instance. Cách làm này sẽ giải quyết được sự xung đột có thể có giữa các thread mà chúng ta đã đề cập ở cách một. Với kĩ thuật này chúng ta sẽ chắc chắn chỉ có duy nhất một thread được phép tạo ra instance, duy nhất một thread được xử lý đoạn code trong phần lock ở một thời điểm, sau đó các thread khác mới được nhảy vào và thấy rằng đã tồn tại một instance khác null được khởi tạo trong thread đầu tiên. Tuy nhiên, cách làm này lại không có lợi về performance cho lắm vì mỗi lần biến Instance được sử dụng thì hàm lock sẽ được gọi và sẽ làm chương trình chạy chậm đi một ít.
- Điểm thứ hai cần lưu ý là ta có thể sử dụng bất kì object nào để dùng cho kĩ thuật lock, có thể sử dụng ngay biến Singleton mà một số lập trình viên vẫn sử dụng. Tuy nhiên tác giả sử dụng một 1 biến private static khác để dùng gọi trong lock. Locking trên những đối tượng mà các lớp khác trong chương trình có thể thấy và sử dụng được là điều vô cùng nguy hiểm, thậm chí có thể gây ra hiện tượng dead-lock. Sử dụng một shared object là cách tôi thích dùng bất khi nào có thể và tạo ra những đối tượng chỉ để dùng nó cho locking. Thường thì những đối tượng này nên được khai báo private trong lớp mà nó được sử dụng để tránh vấn đề nói trên. Cách làm đơn giản này giúp chúng ta có thể viết những chương trình thread-safe dễ dàng hơn nhiều.
Third version – attempted thread-safety using double-check locking
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
}
}
return instance;
}
}
}
- Phương pháp trên sẽ bảo đảm tính thread-safe của chương trình mà không cần phải gọi hàm lock mỗi lần sử dụng biến Instance. Nhưng thật không may, làm như vậy sẽ dẫn đến 4 trở ngại sau:
• Không áp dụng được cho Java. Điều này dường như hơi thừa khi bàn tới vì chúng ta đang đề cập đến Singleton cho .NET, tuy nhiên biết đâu sau này chúng ta cần áp dụng cho Java, lập trình viên C# cũng có thể trở thành lập trình viên Java cơ mà. Mô hình bộ nhớ trong Java không bảo đảm hàm khởi tạo được kết thúc trước khi địa chỉ vùng nhớ của đối tượng được gán cho biến instance. Mô hình vùng nhớ của Java đã được cải tiến ở version 1.5 (hiện tại có sự nâng cấp nào chưa thì các bạn cần kiểm tra lại), nhưng cách làm double-check locking vẫn chưa thể áp dụng được cho Java như C#.
• Cách làm này tuy an toàn (trên lý thuyết) với .NET framework 2.0 nhưng tôi vẫn không thích những gì trên lý thuyết, đặc biệt khi có sự nghi ngờ về tính an toàn của hệ thống.
• Ngoài ra cách này rất dễ sai, cách thiết kế trên buộc bạn phải theo chính xác từng bước như code mẫu.
• Và cuối cùng cách này vẫn chưa phải là cách hiệu quả nhất.
Fourth version – not quite as lazy, but thread-safe without using locks
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Singleton()
{
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
- Các bạn có thể dễ dàng thấy rằng cách làm trên đơn giản hơn 3 cách trước rất nhiều, nhưng liệu cách này có bảo đảm tính thread-safe và lazy-load như mong muốn? Tất nhiên, hàm khởi tạo static của 1 lớp C# được thiết kế để chạy khi bất kì instance nào của lớp được tạo hoặc là có một hàm static nào đó của lớp được gọi. Ngoài ra hàm khởi tạo static chỉ được gọi một lần duy nhất trong mỗi AppDomain. Tính chất này của C# sẽ giúp chúng ta kiểm tra xem một type có được khởi tạo chưa và nó sẽ tự động gọi hàm khởi tạo static bất cứ khi nào cần thiết, như vậy sẽ nhanh hơn là dùng những bước kiểm tra như những phương pháp đầu. Tuy nhiên, cách này vẫn vướng phải một số khiếm khuyết sau đây:
• Cách làm này không bảo đảm tính lazy-load. Trong trường hợp đặc biệt, nếu bạn dùng một static member thay vì dùng biến public static property Instance, lần gọi đầu tiên đến những static member này sẽ gọi hàm khởi tạo static và tạo ra instance của lớp. Nhược điểm này sẽ được khắc phục ở cách kế tiếp.
• Các hàm khởi tạo static nếu có gọi lẫn nhau sẽ bị lặp trong một vòng lặp vô tận. Thực sự thì tôi vẫn chưa thể reproduce được vấn đề này nên cũng không biết nhận định của tác giả là đúng hay sai, tuy nhiên tôi nghĩ chẳng ai lại đi thiết kế những constructor đệ quy gọi vòng vòng lẫn nhau như thế cả.
• Tính lazy-load trong quá trình khởi tạo đối tượng chỉ được bảo đảm trong môi trường .NET khi lớp không bị xem là “beforefieldinit”. Thật không may khi trong bộ biên dịch của C#, nó sẽ xem mọi lớp không có static constructor là beforefieldinit. Tác giả có một bài viết về điều này ở đây dành cho ai muốn tìm hiểu về chủ đề này.
- Một điểm cần lưu ý nữa với cách làm này (chỉ có cách này) là khai báo biến Instance là public static readonly. Như vậy code của chúng ta sẽ đơn giản và gọn hơn. Tuy nhiên, rất nhiều người vẫn thích sử dụng cách Property vì có thể chúng ta sẽ cần tới Property trong một số trường hợp.
Fifth version – fully lazy instantiation
public sealed class Singleton
{
Singleton()
{
}
public static Singleton Instance
{
get
{
return Nested.instance;
}
}
class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}
internal static readonly Singleton instance = new Singleton();
}
}
- Trong cách này, quá trình khởi tạo đối tượng được gọi ở lần truy xuất đầu tiên đến static member của lớp con, quá trình này chỉ xảy ra trong biến Instance. Như vậy cách làm này là hoàn toàn có tính lazy-load và đồng thời vẫn đảm bảo performance tốt như ở cách 4. Bạn cũng nên chú ý rằng mặc dù lớp con (lớp Nested) sẽ không thể được truy xuất từ bên ngoài lớp Singleton của chúng ta. Kĩ thuật này sẽ không gây bất kì vấn đề gì ngoài việc đoạn code của chúng ta sẽ phức tạp hơn một chút để bảo đảm tính lazy-load. Đối với cá nhân tôi hơi bất ngờ khi xem đến cách thứ năm này, có một chút gì đó nghệ thuật trong lập trình phải không các bạn và điều đó thể hiện rõ ở đây.
Performance vs laziness
- Trong nhiều trường hợp, bạn không thật sự cần đến lazy-load trừ khi quá trình khởi tạo của lớp có làm nhiều việc gì đó mất nhiều thời gian. Nếu không đòi hỏi những yêu cầu phức tạp, chúng ta thấy rằng cách sử dụng hàm khởi tạo static sẽ làm ứng dụng chạy nhanh hơn. Nó sẽ tăng performance cho ứng dụng vì cách làm đó cho phép trình biên dịch JIT chỉ kiểm tra một lần duy nhất để xem instance của lớp có được tạo ra hay chưa. Nếu instance Singleton của bạn được truy xuất bên trong một vòng lặp lớn, bạn có thể sẽ thấy chậm hơn đôi chút, tuy nhiên chúng ta nên cân nhắc khi nào cần lazy-load để áp dụng cách thích hợp nhất. Theo tôi không có cách nào tuyệt hảo nhất, chúng ta nên biết nhiều cách để áp dụng đúng nơi đúng chỗ.
Exception
- Thỉnh thoảng, một số xử lý của bạn trong hàm khởi tạo của Singleton có thể tung ra exception, và có thể làm ảnh hưởng đến toàn bộ chương trình. Rất có thể trong trường hợp gặp exception khi khởi tạo, ứng dụng của bạn sẽ thử khởi tạo đối tượng một lần nữa trong phần catch exception. Và một trong những cách có thể làm điều đó là nhờ vào kĩ thuật gọi là “type initializers”, tuy nhiên nó vẫn có thể gây nhiều vấn đề khác. Những lần chạy chương trình khác nhau có thể sẽ xử lý vấn đề này theo các cách khác nhau, tuy nhiên tôi vẫn không biết lần nào chạy đúng như yêu cầu. Và cho dù được như vậy, code của bạn vẫn có thể bị lỗi ở lần chạy khác. Để tránh chuyện này, tôi đề nghị chúng ta sử dụng cách thứ hai.
A word on performance
- Nhiều người cho rằng sử dụng locking tốn rất nhiều resource và làm cho ứng dụng chạy chậm đi. Tác giả đã thực hiện một chương trình để test thử bằng cách truy xuất biến instance của Singleton trong vòng lặp 1 tỉ lần. Tuy không khoa học lắm nhưng trong thực tế bạn có thể muốn kiểm tra xem nó nhanh chậm thế nào. Kết quả cho thấy thực sự không quan trọng. Và kết quả test với phương pháp chậm nhất (cách 2) là mất 40s để hoàn thành xong vòng lặp 1 tỉ lần. Điều này có nghĩa là bạn có thể truy xuất 25 triệu lần biến instance trong một giây, cho nên những cố gắng nâng cao hiệu xuất ứng dụng bằng cách tối ưu hóa mẫu Singleton là không đáng kể trong một số trường hợp.
- Theo ý kiến của Nguyễn Thoại thì cách dùng nào cũng được hết và tôi vẫn sử dụng thường xuyên cách đầu tiên. Bời vì tôi chắc rằng chương trình của tôi không sử dụng multi-thread nên chẳng có thread nào xung đột với nhau. Ngoài ra performance của ứng dụng còn phụ thuộc vào nhiều yếu tố khác nữa, chúng ta nên tìm hiểu xem nguyên nhân làm chậm ứng dụng và fix đúng chỗ. Dù sao đi nữa thì việc sử dụng cách nào là tùy ý thích của chúng ta, như tôi đã nói tôi ưu hóa chương trình khi có thể thì không lúc nào là thừa cả.
Tôi thường sử dụng Singleton ở đâu?
- Trong gần 3 năm làm lập trình, tôi rất thích sử dụng Singleton cho những lớp chỉ mang tính chất Utility, những lớp mà nhiều nơi có thể gọi nó. Một số lần tôi sử dụng Singleton cho một số form trong các ứng dụng desktop. Trong windows, nếu để ý các bạn sẽ thấy có một số cứa sổ chỉ hiện một lần cho dù bạn click vào shotcut của nó như thế nào. Điển hình là cửa sổ Find của notepad hay cửa sổ Run của Windowz. Form cũng là một lớp trong nhiều ngôn ngữ lập trình nên áp dụng Singleton cho nó là điều hoàn toàn bình thường, nếu bạn muốn một form chỉ xuất hiện một lần cho dù bạn gọi nó bằng cách click cả chục cái thì đấy là lúc bạn có thể áp dụng Singleton.
- Nấu nướng từ bài viết Implementing the Singleton Pattern in C#
- Các link tham khảo khác:
The con the nay thi sao:
if (instance==null)
{
Interlocked.CompareExchange(ref instance, new Singleton(), null);
}
return instance;
Thread-safe, còn có lazy-load hay không thì tùy imlementation của lớp Singleton() :D
Bac co' nhung bai viet rat hay. Lam quen voi bac cai nhi? nick YM cua minh la: thanhtung1806
Anh Thoại ơi, trong cách thứ 4, có gì đó. Chỉ có một static constructor duy nhất, thì hiển nhiên lớp này có một default public constructor. Do đó có thể tạo instance thoải mái!
static constructor này là private sao tạo instance thoài mái được :|
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Singleton()
{
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
Đoạn code này chỉ có duy nhất một static constructor, thì hiểu nhiên nó có một constructor như sau:
public Singleton(){}
Lúc này câu lệnh:
Singleton sgt = new Singleton();
chẳng có gì là sai cả => tạo được thể hiện
hehe, xin lỗi nhầm:
Thêm 1 cái defaut private constructor để nó đè cái constructor mặc định :D
private Singleton()
{ }
Dzị là xong.
Thank lmc's space
Hơi lâu, nhưng tình cờ đọc được. Cái 1st comment của anonymous: không thread-safe. Lý do giống với lý do tại sao cách 3 không thread-safe (basically, no memory barrier op by the first null checking).
Sao em tạo 1 instance của lớp singleton này nó lại báo là inaccessible due to protection level hả bác ?
bài viết của bạnh thật bổ ích.cảm ơn bạn.mình đang Tìm hiểu cơ chế Multithread và kỹ thuật lập trình đa tuyến cơ bản trên Windows.
bạn cho mình một khái niệm đúng về thread và multithread được không.vì mình tìm trên ạng có những khái niệm khác nhau.
mình cảm ơn nha
Hi, ở cách 5 thì mình vẫn chưa hiểu lắm khả năng tạo duy nhất một thể hiện singleton. Điều gì sảy ra nếu 2 thead cùng gọi thuộc tính instance?
test thử trong java thì cách 5 ko xài được :D
Ở trong các cách thì contructor đều không có tham số là sao vậy ?
Nếu mình muốn nó có thêm tham số
private string name;
FifthSingleton(string name) { this.name = name; }
thì trong class Nested
internal static readonly FifthSingleton thì truyền tham số bằng cách nào đây .

markdown:
##
Posted On Tuesday, May 27, 2008 at
at
[Sử dụng Singleton Pattern trong C#](http://www.yoda.arachsys.com/csharp/singleton.html)
[8:18 PM](http://nthoai.blogspot.com/2008/05/su-dung-singleton-trong-csharp.html)by Van Nguyen [](http://www.blogger.com/post-edit.g?blogID=3978293580246860892&postID=503650418044699177&from=pencil)
- Trong loạt bài dịch về
[Spring.NET](http://nthoai.blogspot.com/search/label/Spring.NET) tôi đã có cơ hội chia sẽ với các bạn một mẫu Design Pattern khá hấp dẫn là Singleton. Sau bài viết đó, tôi cũng muốn viết thêm một ít về mẫu thiết kế này. Thật may khi tôi vô tình tìm được một [bài viết rất hay](http://www.yoda.arachsys.com/csharp/singleton.html) về chủ đề này. Trong bài, tác giả đề cập đến khá nhiều vấn đề lí thú khác có liên quan đến lập trình, đặc biệt là tính [lazy-load](http://en.wikipedia.org/wiki/Lazy_initialization) và [thread-safe](http://en.wikipedia.org/wiki/Thread-safety) của đối tượng. Vì vậy, tôi quyết định nấu nướng nó, 1 là để chia sẻ với những ai quan tâm, 2 là để nâng cao khả năng đọc hiểu của tôi , và tất nhiên là khả năng viết lách nữa hê hê
.
- Trước khi đọc bài này, các bạn nên nắm trước và hiểu một số thuật ngữ, từ khóa và kĩ thuật trong C# như : base class, sub class, constructor, member, seal, private, public, protected, static, instance, reference, property, performance, thread, multi-thread, lock, lazy-load. Đa số từ khóa trên theo tôi nghĩ các bạn học lập trình đều đã biết đến, cá nhân tôi cũng phải tự tìm hiểu trong quá trình làm việc khi lần đầu tiên gặp những kĩ thuật như lock và lazy-load
. Cho nên trước khi viết, tôi xin giới thiệu sơ qua hai kĩ thuật này. Ngoài ra, trong bài viết có khi tôi sử dụng chữ “instance” và “đối tượng”, hai từ này đều có ý nghĩa vai trò như nhau. Tôi nghĩ có một số từ tôi sẽ giữ nguyên tên tiếng Anh mà không dịch ra tiếng Việt như: thread, multi-thread, performance, …. vì khi được dịch ra đọc thấy nó rất chuối
, hơn nữa những từ tiếng Anh này cũng khá quen thuộc với chúng ta, ai làm lập trình cũng có thể hiểu được. Và cuối cùng, trong bài dịch tôi có thêm vào một số ý kiến của mình, các bạn sẽ dễ dàng phân biệt các ý kiến của tôi với phần dịch khi thấy icon sau "
"
![ Singleton Pattern](http://img167.imageshack.us/img167/6327/singletonod0.png)
Singleton Pattern
- Khi lập trình
[multi-thread](http://en.wikipedia.org/wiki/Thread_%28computer_science%29), chắc chắn các bạn sẽ gặp phải vấn đề đau đầu gọi là đồng bộ hóa tiến trình. Lúc trước tôi học về vấn đề này trong trường đại học ở môn “Hệ điều hành nâng cao”. ![17 :bbpcuoi3:](http://igame.vn/f/images/smilies/BBP_smilies/17.gif)
![57 :bbpktay2:](http://igame.vn/f/images/smilies/BBP_smilies/57.gif)
- Kế tiếp, xin nói sơ qua về
[lazy-load](http://en.wikipedia.org/wiki/Lazy_initialization)hay [lazy initialization](http://en.wikipedia.org/wiki/Lazy_initialization). Đó là một kĩ thuật giúp chúng ta delay lại qua trình tạo ra đối tượng, quá trình tính toán, … và chỉ thực thi quá trình đó đến khi nào nó thực sự cần đến. Về nguyên tắc, kĩ thuật này có thể đạt được bằng cách sử dụng một cờ để kiểm tra xem quá trình của chúng ta có diễn ra hay chưa, nếu chưa thì sẽ thực hiện còn nếu đã làm rồi thì chỉ cần trả về giá trị được lưu của lần thực thi trước đó hoặc đơn giản chẳng làm gì cả. Trong thực tế thì kĩ thuật này sẽ được áp dụng nhiều trong các framework [ORM](http://madgeek.com/Articles/ORMapping/EN/mapping.htm). Tôi xin nói một ví dụ: giả sử bạn có 1 database với 2 bảng lưu thông tin lớp học và học sinh với ràng buộc một lớp học có thể có nhiều học sinh. Tương ứng với 2 bảng trong cơ sở dữ liệu thì trong chương trình của bạn có 2 lớp là Class và Student. Trong lớp Class sẽ có một member StudentList thuộc kiểu List ![08 :bbpnen:](http://igame.vn/f/images/smilies/BBP_smilies/08.gif)
- Mẫu thiết kế
[Singleton](http://nthoai.blogspot.com/search/label/Singleton)là một trong những mẫu thông dụng và được sử dụng rộng rãi nhất trong kĩ thuật lập trình. Về nguyên tắc, một Singleton là một lớp chỉ cho phép một đối tượng tương ứng được tạo, và tất nhiên nó cũng phải có một public member để những đối tượng khác có thể truy xuất instance Singleton này. Thông thường, cách thiết kế lớp theo kiểu Singleton sẽ không sử dụng hàm khởi tạo có tham số, nếu không thì một yêu cầu khởi tạo đối tượng với các tham số khác nhau sẽ gây rắc rối. (Nếu cùng một instance được gọi bằng hàm getInstance với những tham số khác nhau thì ta dùng mẫu thiết kế [Factory Method](http://nthoai.blogspot.com/search/label/Factory%20Method)sẽ hợp lý hơn) Bài viết này chỉ đề cập đến những Singletons với hàm khởi tạo không tham số, hay hàm getInstance() không có tham số. Nói chung, khi người ta sử dụng Singleton vì tính lazy-load của nó, instance của lớp sẽ không cần được tạo đến khi nào nó thật sự cần thiết.
- Có khá nhiều cách để thiết kế Singleton trong C#. Tác giả sẽ thể hiện từng cách từ đơn giản đến phức tạp, bắt đầu bằng cách thông dụng nhất- cách không có tính thread-safe (an toàn khi sử dụng với thread) đến những cách có tính thread-safe và hỗ trợ lazy-loaded; đơn giản cũng như performance cao. Trong những ví dụ code mẫu ở trong bài viết, tác giả sẽ sử dụng từ khóa private mặc định cho các member của lớp. Trong nhiều ngôn ngữ khác như Java, có thể sẽ khác đi đôi chút tuy nhiên từ khóa private vẫn nên được sử dụng.
- Dù có nhiều cách thực hiện, tất cả những phương pháp tôi giới thiệu ở trong bài viết này đều có thể sử dụng một trong những điều sau để thiết kế Singleton:
• Có sử dụng một hàm khởi tạo không tham số và được khai báo private, làm như vậy sẽ không cho những lớp khác khởi tạo nó. Ngoài ra, khai báo hàm khởi tạo private cũng không cho những lớp con kế thừa, vì nếu một lớp được thiết kế theo kiểu Singleton thì nó có thể có hai hoặc nhiều lớp con và nếu mỗi lớp con đều có thể tạo ra instance thì mẫu thiết kế Singleton sẽ không còn đúng.
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
![39 :bbpcuoi5:](http://igame.vn/f/images/smilies/BBP_smilies/39.gif)
• Có sử dụng lớp sealed (một lớp được khai báo với từ khóa seal sẽ không cho phép tạo lớp con kế thừa nó). Điều này đôi khi không cần thiết theo như cách làm tác giả nói ở trên nhưng nó có thể giúp trình dịch
[JIT (Just – In – Time)](http://en.wikipedia.org/wiki/Just-in-time_compilation)tối ưu hóa chương trình.
• Có thể sử dụng một biến static để giữ instance duy nhất của lớp.
• Có thể sử dụng một biến public static để giúp các lớp khác sử dụng biến instance Singleton duy nhất được nói ở cách 3.
- Xin nhắc lại một lần nữa là trong tất cả các cách làm trên đều có sử dụng một public static property tên là Instance (
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
First version – not thread-safe.
public sealed class Singleton
{
static Singleton instance=null;
Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
- Như đã giới thiệu trước đây, cách làm trên là không đạt được nguyên tắc thread-safe. Hai thread khác nhau có thể cùng một lúc chạy đến đoạn code trên, kiểm tra xem biến instance có bằng null hay không và thấy là nó null thật nên cùng tạo ra instance trong mỗi thread, như vậy là không đúng với ý tưởng thiết kế của Singleton. Chúng ta cũng dễ dàng thấy rằng biến instance trong đoạn code trên cũng có thể được khởi tạo trước khi biểu thức kiểm tra null được tính, nhưng vì các thread khác nhau đều có thể đọc bộ nhớ cùng một lúc, nếu không có một cơ chế kiểm soát để các thread khi truy xuất vùng nhớ tuần tự thì sẽ có trường hợp 2 hoặc nhiều thread đều kiểm tra và thấy biến instance đang là null và tạo ra hàng loạt các instance mới. Thiên hạ đại loạn.
![23 :bbpnodo:](http://igame.vn/f/images/smilies/BBP_smilies/23.gif)
Second version – simple thread safety
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
- Cách làm thứ hai này là hoàn toàn thread-safe. Nếu bạn đã đọc phần giới thiệu ở trên của tôi về lock , bạn sẽ thấy trong đoạn code có sử dụng một shared object để lock phần code kiểm tra null của biến instance. Cách làm này sẽ giải quyết được sự xung đột có thể có giữa các thread mà chúng ta đã đề cập ở cách một. Với kĩ thuật này chúng ta sẽ chắc chắn chỉ có duy nhất một thread được phép tạo ra instance, duy nhất một thread được xử lý đoạn code trong phần lock ở một thời điểm, sau đó các thread khác mới được nhảy vào và thấy rằng đã tồn tại một instance khác null được khởi tạo trong thread đầu tiên. Tuy nhiên, cách làm này lại không có lợi về performance cho lắm vì mỗi lần biến Instance được sử dụng thì hàm lock sẽ được gọi và sẽ làm chương trình chạy chậm đi một ít.
- Điểm thứ hai cần lưu ý là ta có thể sử dụng bất kì object nào để dùng cho kĩ thuật lock, có thể sử dụng ngay biến Singleton mà một số lập trình viên vẫn sử dụng. Tuy nhiên tác giả sử dụng một 1 biến private static khác để dùng gọi trong lock. Locking trên những đối tượng mà các lớp khác trong chương trình có thể thấy và sử dụng được là điều vô cùng nguy hiểm, thậm chí có thể gây ra hiện tượng dead-lock. Sử dụng một shared object là cách tôi thích dùng bất khi nào có thể và tạo ra những đối tượng chỉ để dùng nó cho locking. Thường thì những đối tượng này nên được khai báo private trong lớp mà nó được sử dụng để tránh vấn đề nói trên. Cách làm đơn giản này giúp chúng ta có thể viết những chương trình thread-safe dễ dàng hơn nhiều.
Third version – attempted thread-safety using double-check locking
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
}
}
return instance;
}
}
}
- Phương pháp trên sẽ bảo đảm tính thread-safe của chương trình mà không cần phải gọi hàm lock mỗi lần sử dụng biến Instance. Nhưng thật không may, làm như vậy sẽ dẫn đến 4 trở ngại sau:
• Không áp dụng được cho Java. Điều này dường như hơi thừa khi bàn tới vì chúng ta đang đề cập đến Singleton cho .NET, tuy nhiên biết đâu sau này chúng ta cần áp dụng cho Java, lập trình viên C# cũng có thể trở thành lập trình viên Java cơ mà
![50 :bbpraroi:](http://igame.vn/f/images/smilies/BBP_smilies/50.gif)
• Cách làm này tuy an toàn (trên lý thuyết) với .NET framework 2.0 nhưng tôi vẫn không thích những gì trên lý thuyết, đặc biệt khi có sự nghi ngờ về tính an toàn của hệ thống.
• Ngoài ra cách này rất dễ sai, cách thiết kế trên buộc bạn phải theo chính xác từng bước như code mẫu.
• Và cuối cùng cách này vẫn chưa phải là cách hiệu quả nhất.
Fourth version – not quite as lazy, but thread-safe without using locks
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Singleton()
{
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
- Các bạn có thể dễ dàng thấy rằng cách làm trên đơn giản hơn 3 cách trước rất nhiều, nhưng liệu cách này có bảo đảm tính thread-safe và lazy-load như mong muốn? Tất nhiên, hàm khởi tạo static của 1 lớp C# được thiết kế để chạy khi bất kì instance nào của lớp được tạo hoặc là có một hàm static nào đó của lớp được gọi. Ngoài ra hàm khởi tạo static chỉ được gọi một lần duy nhất trong mỗi
[AppDomain](http://www.odetocode.com/Articles/305.aspx). Tính chất này của C# sẽ giúp chúng ta kiểm tra xem một type có được khởi tạo chưa và nó sẽ tự động gọi hàm khởi tạo static bất cứ khi nào cần thiết, như vậy sẽ nhanh hơn là dùng những bước kiểm tra như những phương pháp đầu. Tuy nhiên, cách này vẫn vướng phải một số khiếm khuyết sau đây:
• Cách làm này không bảo đảm tính lazy-load. Trong trường hợp đặc biệt, nếu bạn dùng một static member thay vì dùng biến public static property Instance, lần gọi đầu tiên đến những static member này sẽ gọi hàm khởi tạo static và tạo ra instance của lớp. Nhược điểm này sẽ được khắc phục ở cách kế tiếp.
• Các hàm khởi tạo static nếu có gọi lẫn nhau sẽ bị lặp trong một vòng lặp vô tận.
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
• Tính lazy-load trong quá trình khởi tạo đối tượng chỉ được bảo đảm trong môi trường .NET khi lớp không bị xem là “
[beforefieldinit](http://www.yoda.arachsys.com/csharp/beforefieldinit.html)”. Thật không may khi trong bộ biên dịch của C#, nó sẽ xem mọi lớp không có static constructor là beforefieldinit. Tác giả có một bài viết về điều này ở đây dành cho ai muốn tìm hiểu về chủ đề này.
- Một điểm cần lưu ý nữa với cách làm này (chỉ có cách này) là khai báo biến Instance là public static readonly. Như vậy code của chúng ta sẽ đơn giản và gọn hơn. Tuy nhiên, rất nhiều người vẫn thích sử dụng cách Property vì có thể chúng ta sẽ cần tới Property trong một số trường hợp.
Fifth version – fully lazy instantiation
public sealed class Singleton
{
Singleton()
{
}
public static Singleton Instance
{
get
{
return Nested.instance;
}
}
class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}
internal static readonly Singleton instance = new Singleton();
}
}
- Trong cách này, quá trình khởi tạo đối tượng được gọi ở lần truy xuất đầu tiên đến static member của lớp con, quá trình này chỉ xảy ra trong biến Instance. Như vậy cách làm này là hoàn toàn có tính lazy-load và đồng thời vẫn đảm bảo performance tốt như ở cách 4. Bạn cũng nên chú ý rằng mặc dù lớp con (lớp Nested) sẽ không thể được truy xuất từ bên ngoài lớp Singleton của chúng ta. Kĩ thuật này sẽ không gây bất kì vấn đề gì ngoài việc đoạn code của chúng ta sẽ phức tạp hơn một chút để bảo đảm tính lazy-load.
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
Performance vs laziness
- Trong nhiều trường hợp, bạn không thật sự cần đến lazy-load trừ khi quá trình khởi tạo của lớp có làm nhiều việc gì đó mất nhiều thời gian. Nếu không đòi hỏi những yêu cầu phức tạp, chúng ta thấy rằng cách sử dụng hàm khởi tạo static sẽ làm ứng dụng chạy nhanh hơn. Nó sẽ tăng performance cho ứng dụng vì cách làm đó cho phép trình biên dịch JIT chỉ kiểm tra một lần duy nhất để xem instance của lớp có được tạo ra hay chưa. Nếu instance Singleton của bạn được truy xuất bên trong một vòng lặp lớn, bạn có thể sẽ thấy chậm hơn đôi chút,
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
Exception
- Thỉnh thoảng, một số xử lý của bạn trong hàm khởi tạo của Singleton có thể tung ra exception, và có thể làm ảnh hưởng đến toàn bộ chương trình. Rất có thể trong trường hợp gặp exception khi khởi tạo, ứng dụng của bạn sẽ thử khởi tạo đối tượng một lần nữa trong phần catch exception. Và một trong những cách có thể làm điều đó là nhờ vào kĩ thuật gọi là “
[type initializers](http://www.west-wind.com/weblog/posts/187116.aspx)”, tuy nhiên nó vẫn có thể gây nhiều vấn đề khác. Những lần chạy chương trình khác nhau có thể sẽ xử lý vấn đề này theo các cách khác nhau, tuy nhiên tôi vẫn không biết lần nào chạy đúng như yêu cầu. Và cho dù được như vậy, code của bạn vẫn có thể bị lỗi ở lần chạy khác. Để tránh chuyện này, tôi đề nghị chúng ta sử dụng cách thứ hai.
A word on performance
- Nhiều người cho rằng sử dụng locking tốn rất nhiều resource và làm cho ứng dụng chạy chậm đi. Tác giả đã thực hiện một chương trình để test thử bằng cách truy xuất biến instance của Singleton trong vòng lặp 1 tỉ lần. Tuy không khoa học lắm nhưng trong thực tế bạn có thể muốn kiểm tra xem nó nhanh chậm thế nào. Kết quả cho thấy thực sự không quan trọng. Và kết quả test với phương pháp chậm nhất (cách 2) là mất 40s để hoàn thành xong vòng lặp 1 tỉ lần. Điều này có nghĩa là bạn có thể truy xuất 25 triệu lần biến instance trong một giây, cho nên những cố gắng nâng cao hiệu xuất ứng dụng bằng cách tối ưu hóa mẫu Singleton là không đáng kể trong một số trường hợp.
-
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
![ http://img145.imageshack.us/img145/5899/commentdz0.gif](http://img145.imageshack.us/img145/5899/commentdz0.gif)
- Trong gần 3 năm làm lập trình, tôi rất thích sử dụng Singleton cho những lớp chỉ mang tính chất Utility, những lớp mà nhiều nơi có thể gọi nó. Một số lần tôi sử dụng Singleton cho một số form trong các ứng dụng desktop. Trong windows, nếu để ý các bạn sẽ thấy có một số cứa sổ chỉ hiện một lần cho dù bạn click vào shotcut của nó như thế nào. Điển hình là cửa sổ Find của notepad hay cửa sổ Run của Windowz. Form cũng là một lớp trong nhiều ngôn ngữ lập trình nên áp dụng Singleton cho nó là điều hoàn toàn bình thường, nếu bạn muốn một form chỉ xuất hiện một lần cho dù bạn gọi nó bằng cách click cả chục cái thì đấy là lúc bạn có thể áp dụng Singleton.
![ Run utility in Windows](http://img90.imageshack.us/img90/401/runnk8.png)
![ Find function in notepad](http://img389.imageshack.us/img389/9971/findao8.png)
- Nấu nướng từ bài viết
[Implementing the Singleton Pattern in C#](http://www.yoda.arachsys.com/csharp/singleton.html)
- Các link tham khảo khác:
The con the nay thi sao:
if (instance==null)
{
Interlocked.CompareExchange(ref instance, new Singleton(), null);
}
return instance;
Thread-safe, còn có lazy-load hay không thì tùy imlementation của lớp Singleton() :D
Bac co' nhung bai viet rat hay. Lam quen voi bac cai nhi? nick YM cua minh la: thanhtung1806
Anh Thoại ơi, trong cách thứ 4, có gì đó. Chỉ có một static constructor duy nhất, thì hiển nhiên lớp này có một default public constructor. Do đó có thể tạo instance thoải mái!
static constructor này là private sao tạo instance thoài mái được :|
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Singleton()
{
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
Đoạn code này chỉ có duy nhất một static constructor, thì hiểu nhiên nó có một constructor như sau:
public Singleton(){}
Lúc này câu lệnh:
Singleton sgt = new Singleton();
chẳng có gì là sai cả => tạo được thể hiện
hehe, xin lỗi nhầm:
Thêm 1 cái defaut private constructor để nó đè cái constructor mặc định :D
private Singleton()
{ }
Dzị là xong.
Thank lmc's space
Hơi lâu, nhưng tình cờ đọc được. Cái 1st comment của anonymous: không thread-safe. Lý do giống với lý do tại sao cách 3 không thread-safe (basically, no memory barrier op by the first null checking).
Sao em tạo 1 instance của lớp singleton này nó lại báo là inaccessible due to protection level hả bác ?
bài viết của bạnh thật bổ ích.cảm ơn bạn.mình đang Tìm hiểu cơ chế Multithread và kỹ thuật lập trình đa tuyến cơ bản trên Windows.
bạn cho mình một khái niệm đúng về thread và multithread được không.vì mình tìm trên ạng có những khái niệm khác nhau.
mình cảm ơn nha
Hi, ở cách 5 thì mình vẫn chưa hiểu lắm khả năng tạo duy nhất một thể hiện singleton. Điều gì sảy ra nếu 2 thead cùng gọi thuộc tính instance?
test thử trong java thì cách 5 ko xài được :D
Ở trong các cách thì contructor đều không có tham số là sao vậy ?
Nếu mình muốn nó có thêm tham số
private string name;
FifthSingleton(string name) { this.name = name; }
thì trong class Nested
internal static readonly FifthSingleton thì truyền tham số bằng cách nào đây .


text:
Phim HOT
Phim được quan tâm nhiều: Phim 18+| phim bo han quoc | Phim Bộ TVB | Thị Trấn Small Ville | Kim Binh Mai | Sex And Zen | thien long bat bo | Anh hung xa dieu | Y thien do long ky | Maria Ozawa | Phim cấp 3 | Phim XXX | Phim Con Heo | sex teen Phim sex Hàn Quốc | Phim sex Nhật Bản | Phim sex Mỹ | Phim sex Thái Lan | SEX | lauxanh.us | Clip sex | Làm Tình | Tuyển tập Sex Loạn Luân | Tiếu Ngạo Giang Hồ
Phim bộ mới
Phim Việt Nam
- Niềm Tin - Believe [12/12 tập]
- Phẩm Chất Quý Ông - A ... [20 Tập]
- Định Mệnh Phần 1 - Star-crossed ... [2/30 tập]
- Vi Sư Sắc Sảo - Incisive ... [2/45 tập]
- Xác Sống 4 - The Walking ... [16/?]
- Con Đường Không Lối Thoát - ... [25/25 tập]
- Săn Lùng Quái Vật 3 - ... [22/22 tập]
- Săn Lùng Quái Vật 2 - ... [22/22 tập]
- Săn Lùng Quái Vật 1 - ... [22/22 tập]
- Niềm Tin 1 - Believe Season ... [9/12 tập]
- Người Sói Teen 3 - Teen ... [22/24 tập]
- Đại Dịch Phần 1 [9/20 tập]
- Cô Gái Kỳ Quặc Phần 3 ... [30/30 Tập]
- Ngự Lâm Quân Phần 1 - ... [5/30 tập]
- Người Sói Teen 3 [19/24 tập]
- Ba Bà Đại Chiến – Hài ... [101 phút]
- Phim Sex Nhật Bản - Nô ... [100 phút]
- Đảo Khủng Bố 2: Nổi Loạn ... [102 phút]
- Phim Hài Tết – Thầy Bói ... [Full]
- Phim Hài Tết 2015 - Hết ... [Full]
- Chôn Nhời 2 [97 phút]
- Tuyển Tập Clip Trẻ 18+ Hài ... [Đang cập nhật]
- Phim 18+ Ấn Độ - Cám ... [100 Phút]
- Phim Sex Việt Nam Mới Nhất ... [100 Phút]
- Chàng Trai Năm Ấy - 2014 [90 phút]
- Để Mai Tính 2 - 2014 [90 phút]
- Cầu Vòng Sau Mưa [30 tập]
- Tài Tiếu Tuyệt [Đang cập nhật]
- Gió Nghịch Mùa [40 tập]
- Vuờn Yêu [30 tập]
-
50 views10/10 tập
-
35 views101 phút
-
16 views100 Phút
-
28 views43/43 tập
-
1055 views100 phút
-
1751 views134 phút
-
1210 views134 phút
-
37 views100 phút
-
63 views90 phút
-
53 views119 phút
-
46 views98 phút
-
74 views112 phút
-
40 views139 phút
-
90 views100 phút
-
112 views134 phút
-
98 views10/10 tập
-
80 views10/10 tập
-
46 views6/6 tập
-
2506 views100 phút
-
" alt="Nàng Everly - Everly">66 views92 phút
Phim Lẻ »
-
50 views10/10 tập
-
35 views101 phút
-
16 views100 Phút
-
28 views43/43 tập
-
1055 views100 phút
-
1751 views134 phút
-
1210 views134 phút
-
37 views100 phút
-
63 views90 phút
-
53 views119 phút
-
46 views98 phút
-
74 views112 phút
-
40 views139 phút
-
90 views100 phút
-
112 views134 phút
-
98 views10/10 tập
-
80 views10/10 tập
-
46 views6/6 tập
-
2506 views100 phút
-
" alt="Nàng Everly - Everly">66 views92 phút
Phim Lẻ »
-
59 views13/13 tập
-
40 views50/50 tập
-
84 views10 tập
-
12 tập
-
12 tập
-
42 views12 tập
-
31 views6 tập
-
31 views10 tập
-
36 views27 tập
-
39 views20 tập
-
26 views750 tập
-
31 views20 tập
-
49 views35 tập
-
51 views40 tập
-
55 views12 tập
-
12 tập
-
30 views6 tập
-
31 views10 Tập
-
26 views40 tập
-
44 views21 tập
Phim bộ »

markdown:
## Phim HOT
Phim được quan tâm nhiều:
[|](http://pagephim.net/the-loai/phim-18+_23/trang-1.html) **Phim 18+** [phim bo han quoc](http://pagephim.net/tim-kiem/phim+bo+han+quoc.html)| [Phim Bộ TVB](http://pagephim.net/the-loai/phim-tvb_29/trang-1.html)| [Thị Trấn Small Ville](http://pagephim.net/tim-kiem/thi+tran+smallvile.html)| [Kim Binh Mai](http://pagephim.net/tim-kiem/kim+binh+mai.html)| [Sex And Zen](http://pagephim.net/tim-kiem/sex+and+zen.html)| [thien long bat bo](http://pagephim.net/tim-kiem/thien+long+bat+bo.html)| [Anh hung xa dieu](http://pagephim.net/tim-kiem/anh+hung+xa+dieu.html)| [Y thien do long ky](http://pagephim.net/tim-kiem/y+thien+do+long+ky.html)| [Maria Ozawa](http://pagephim.net/thong-tin-phim/maria-ozawa--bo-suu-tam-50-phim-cap-3-maria-ozawa/1494.html)| [Phim cấp 3](http://pagephim.net/the-loai/phim-cap-3_30/trang-1.html)| [Phim XXX](http://pagephim.net/thong-tin-phim/xxx-hay-tuyen-chon--phim-cap-3/844.html)| [Phim Con Heo](http://pagephim.net/thong-tin-phim/-phim-con-heo-hay--em-gai-de-thuong-nguoi-nhat--phim-cap-3/1009.html)| [sex teen](http://pagephim.net/tim-kiem/sex+teen.html) [Phim sex Hàn Quốc](http://pagephim.net/tim-kiem/phim+sex+han+quoc.html)| [Phim sex Nhật Bản](http://pagephim.net/tim-kiem/phim+sex+nhat+ban.html)| [Phim sex Mỹ](http://pagephim.net/tim-kiem/phim+sex+my.html)| [Phim sex Thái Lan](http://pagephim.net/tim-kiem/phim+sex+thai+lan.html)| [SEX](http://pagephim.net/tim-kiem/sex.html)| [lauxanh.us](http://pagephim.net/tim-kiem/lauxanh.html)| [Clip sex](http://pagephim.net/tim-kiem/clip+sex.html)| [Làm Tình](http://pagephim.net/tim-kiem/lam+tinh.html)| Tuyển tập Sex [Loạn Luân](http://pagephim.net/tim-kiem/loan+luan.html)| [Tiếu Ngạo Giang Hồ](http://pagephim.net/tim-kiem/tieu+ngao+giang+ho.html)
Phim bộ mới
Phim Việt Nam
[Niềm Tin - Believe](./thong-tin-phim/niem-tin--believe/3555.html)[12/12 tập] [Phẩm Chất Quý Ông - A ...](./thong-tin-phim/pham-chat-quy-ong--a-gentlemans-dignity/3406.html)[20 Tập] [Định Mệnh Phần 1 - Star-crossed ...](./thong-tin-phim/dinh-menh-phan-1--starcrossed-season-1/3349.html)[2/30 tập] [Vi Sư Sắc Sảo - Incisive ...](./thong-tin-phim/vi-su-sac-sao--incisive-great-teacher--vietsub/3320.html)[2/45 tập] [Xác Sống 4 - The Walking ...](./thong-tin-phim/xac-song-4--the-walking-dead-season-4/3308.html)[16/?] [Con Đường Không Lối Thoát - ...](./thong-tin-phim/con-duong-khong-loi-thoat--tron-bo-25-tap/3276.html)[25/25 tập] [Săn Lùng Quái Vật 3 - ...](./thong-tin-phim/san-lung-quai-vat-3--grimm-season-3/3279.html)[22/22 tập] [Săn Lùng Quái Vật 2 - ...](./thong-tin-phim/san-lung-quai-vat-2--grimm-season-2/3278.html)[22/22 tập] [Săn Lùng Quái Vật 1 - ...](./thong-tin-phim/san-lung-quai-vat-1--grimm-season-1/3277.html)[22/22 tập] [Niềm Tin 1 - Believe Season ...](./thong-tin-phim/niem-tin-1--believe-season-1/3275.html)[9/12 tập] [Người Sói Teen 3 - Teen ...](./thong-tin-phim/nguoi-soi-teen-3--teen-wolf-season-3/3227.html)[22/24 tập] [Đại Dịch Phần 1](./thong-tin-phim/dai-dich-phan-1/2679.html)[9/20 tập] [Cô Gái Kỳ Quặc Phần 3 ...](./thong-tin-phim/co-gai-ky-quac-phan-3--new-girl-season-3/2802.html)[30/30 Tập] [Ngự Lâm Quân Phần 1 - ...](./thong-tin-phim/ngu-lam-quan-phan-1--the-musketeers-season-1/2803.html)[5/30 tập] [Người Sói Teen 3](./thong-tin-phim/nguoi-soi-teen-3/2682.html)[19/24 tập] [Ba Bà Đại Chiến – Hài ...](./thong-tin-phim/ba-ba-dai-chien-–-hai-tet/4306.html)[101 phút] [Phim Sex Nhật Bản - Nô ...](./thong-tin-phim/phim-sex-nhat-ban--no-le-tinh-duc-2/4289.html)[100 phút] [Đảo Khủng Bố 2: Nổi Loạn ...](./thong-tin-phim/dao-khung-bo-2-noi-loan--obitaemyy-ostrov/4283.html)[102 phút] [Phim Hài Tết – Thầy Bói ...](./thong-tin-phim/phim-hai-tet-–-thay-boi-hat-–-hai-chien-thang/4274.html)[Full] [Phim Hài Tết 2015 - Hết ...](./thong-tin-phim/phim-hai-tet-2015--het-doi-rau-quap/4273.html)[Full] [Chôn Nhời 2](./thong-tin-phim/chon-nhoi-2/4254.html)[97 phút] [Tuyển Tập Clip Trẻ 18+ Hài ...](./thong-tin-phim/tuyen-tap-clip-tre-18+-hai-huoc/4247.html)[Đang cập nhật] [Phim 18+ Ấn Độ - Cám ...](./thong-tin-phim/phim-18+-an-do--cam-do-tinh-duc/4231.html)[100 Phút] [Phim Sex Việt Nam Mới Nhất ...](./thong-tin-phim/phim-sex-viet-nam-moi-nhat-2015/4224.html)[100 Phút] [Chàng Trai Năm Ấy - 2014](./thong-tin-phim/Chang-Trai-Nam-Ay--2014/4185.html)[90 phút] [Để Mai Tính 2 - 2014](./thong-tin-phim/De-Mai-Tinh-2--2014/4181.html)[90 phút] [Cầu Vòng Sau Mưa](./thong-tin-phim/Cau-Vong-Sau-Mua/4146.html)[30 tập] [Tài Tiếu Tuyệt](./thong-tin-phim/Tai-Tieu-Tuyet/4145.html)[Đang cập nhật] [Gió Nghịch Mùa](./thong-tin-phim/Gio-Nghich-Mua/4121.html)[40 tập] [Vuờn Yêu](./thong-tin-phim/Vuon-Yeu/4077.html)[30 tập]
-
50 views10/10 tập
-
35 views101 phút
-
16 views100 Phút
-
28 views43/43 tập
-
1055 views100 phút
-
1751 views134 phút
-
1210 views134 phút
-
37 views100 phút
-
63 views90 phút
-
53 views119 phút
-
46 views98 phút
-
74 views112 phút
-
40 views139 phút
-
90 views100 phút
-
112 views134 phút
-
98 views10/10 tập
-
80 views10/10 tập
-
46 views6/6 tập
-
2506 views100 phút
-
" alt="Nàng Everly - Everly">66 views92 phút
[»](http://pagephim.net/danh-sach/phim-le.html) **Phim Lẻ**
-
50 views10/10 tập
-
35 views101 phút
-
16 views100 Phút
-
28 views43/43 tập
-
1055 views100 phút
-
1751 views134 phút
-
1210 views134 phút
-
37 views100 phút
-
63 views90 phút
-
53 views119 phút
-
46 views98 phút
-
74 views112 phút
-
40 views139 phút
-
90 views100 phút
-
112 views134 phút
-
98 views10/10 tập
-
80 views10/10 tập
-
46 views6/6 tập
-
2506 views100 phút
-
" alt="Nàng Everly - Everly">66 views92 phút
[»](http://pagephim.net/danh-sach/phim-le.html) **Phim Lẻ**
-
59 views13/13 tập
-
40 views50/50 tập
-
84 views10 tập
-
12 tập
-
12 tập
-
42 views12 tập
-
31 views6 tập
-
31 views10 tập
-
36 views27 tập
-
39 views20 tập
-
26 views750 tập
-
31 views20 tập
-
49 views35 tập
-
51 views40 tập
-
55 views12 tập
-
12 tập
-
30 views6 tập
-
31 views10 Tập
-
26 views40 tập
-
44 views21 tập
[»](http://pagephim.net/danh-sach/phim-bo.html) **Phim bộ**

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

Server: LiteSpeed

Connection: close

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Type: text/html; charset=UTF-8

Content-Encoding: gzip

Vary: User-Agent


text:
Đăng Ký Nhận Phim Mới
Quản trị website: Huỳnh Mai Anh Kiệt (Quy Nhơn - Bình Định) - Email: HuynhMaiAnhKiet@Gmail.Com - Điện thoại: 0905567654.
Ghi rõ nguồn "wWw.PhimViet.Us" khi bạn phát hành lại thông tin từ website này.
Website tương thích tốt nhất với trình duyệt FireFox hoặc Google Chrome và độ phân giải màn hình 1024x768 pixels.

Vary: Accept-Encoding

Accept-Ranges: bytes


text:
CÁC NƯỚC CHÂU PHI VÀ MỸ LA TINH
Chia sẻ: Uyen Nguyen | Ngày: | Loại File: PDF | Số trang:16
lượt xem 19
download
CÁC NƯỚC CHÂU PHI VÀ MỸ LA TINH
Về kiến thức Qua bài này giúp học sinh nắm đựơc: - Những nét cơ bản về quá trình đấu tranh giành độc lập của các nước châu Phi và Mĩ Latinh. - Công cuộc xây dựng kinh tế xã hội ( những thành tựu và khó khăn) của các nước châu Phi và Mĩ latinh sau chiến tranh thế giới thứ hai. 2. Về tư tưởng : - Trân trọng, cảm phục trước những thành quả đấu tranh của pTGPDT ở châu Phi và Mĩ Latinh. - Nhận thức sâu sắc về những khó khăn của các nước...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: CÁC NƯỚC CHÂU PHI VÀ MỸ LA TINH
- CAÙC NÖÔÙC CHAÂU PHI VAØ MÓLATINH I /MỤC TIÊU BÀI HỌC 1. Về kiến thức Qua bài này giúp học sinh nắm đựơc: - Những nét cơ bản về quá trình đấu tranh giành độc lập của các nước châu Phi và Mĩ Latinh. - Công cuộc xây dựng kinh tế xã hội ( những thành tựu và khó khăn) của các nước châu Phi và Mĩ latinh sau chiến tranh thế giới thứ hai. 2. Về tư tưởng : - Trân trọng, cảm phục trước những thành quả đấu tranh của pTGPDT ở châu Phi và Mĩ Latinh. - Nhận thức sâu sắc về những khó khăn của các nước này trong công cuộc xây dựng, phát triển kinh tế - xã hội, từ đó xây dựng tinh thần đoàn kết, tương trợ quốc tế. 3. Về kĩ năng: - Quan sát, khai thác lược đò và tranh ảnh..
- - Các kĩ năng tư duy,: So sánh, phân tích, tổng hợp, đánh giá sự kiện. II. THIẾT BỊ VÀ TÀI LIỆU DẠY HỌC - Lược đò châu Phi và Mĩ La tinh sau chiến thanh thế giới thứ hai - Một số tranh ảnh có liên quan - Các tài liệu tham khảo. III.TIẾN TRÌNH TỔ CHỨC DẠY HỌC 1.Kiểm ta bài cũ: * Câu hỏi: 1. Sửa đời, quá trình phát triển và vai trò của tổ chức ASEAN. 2. Nêu những thành tựu chính của ÂĐ trong công cuộc xây dựng đất nước sau CTTG thứ hai. 2. Dẫn dắt vào bài mới Sau CTTG thứ hai, phong trào giải phóng dân tộc và bảo vệ độc lập của châu Phi và MLT bùng nổ, đã giành đựơc thắng lợi to lớn.Bản đồ chính trị của 2 khu vực này có sự thay đổi căn bản: Một loạt các quốc gia độc lập ra đời, tình hình kinh tế - xã hội từng bước có sự thay đổi, nhưng còn không ít những khó khăn và nhiều nơi không ổn định. Vậy, quá trình đấu tranh giành và bảo vệ độc lập của các nước chấu Phi và MLT diễn ra như thế nào? Thành tựu khó khănhtrong công cuộc xây dựng
- và phát triển kinh tế xã hội của các nước này như thế nào? Đó là những vấn đề cơ bản mà ta cần tìm hiểu qua tiết này. 3. Tiến trình tổ chức dạy học Hoạt động của Gv và HS Kiến thứ cơ bản * Hoạt động 1: cả lớp và cá I.Các nước châu Phi nhân 1.vài nét về cuộc đấu tranhgiành độc - GV sử dụng lược đồ châu Phi lập sau CTTG thứ hai và giới thiệu - Sau CTTGthứ hai, PTĐTGĐL bùng vài nét về châu Phi: Châu Phi là nổ mạnh mẽ ở châu Phi. châu lục lớn thứ 3 thế giới (sau châu Á và châu Mĩ) bao gồm 57 quốc gia với diện tích khoảng 30,3 triệu km2, dân số 839 triệu người (2002). Đây là khu vực giàu taid nguyên và nông sản quý. Song do chính sách thống trị và vơ vét của cải của chủ nghĩa thực dân phương Tây mà - Phong trào đặc biệt phát triển từ những châu Phi trở nên nghèo nàn, lạc năm 50, trước hết là ở khu vực Bắc Phi, hậu. sau đó lan ra các nơi khác. Hàng loạt
- - Sau khi chiến tranh thế giới thứ các nứơc giành độc lập như: Ai cập nhất kết thúc, các nước đế quốc (1953), Libi (1952), Angiêri (1962), thắng trận phân chia phần chót Tuynidi, Marốc, Xu Đăng (1956 ), phạm vi thống trị của họ ở châu Gana (1957), Ghinê (1958)… Phi. - Năm 1960, được ghi nhận là “Năm - Sau khi CTTG thứ hai , cơn bão châu Phi” với 17 quốc gia (Ở Tây Phi, táp cách mạng giải phóng dân Đông Phi, Trung Phi) được trao trả độc tộc đã bùng nổ ở châu Phi và nơi lập. đây troẻ thành “Lục địa mới trổi - Năm 1975, cách mạng Môdămbích, dậy” trong cuộic đấu tranh chống Ăngôla giành thắnglợi, đánh dấu sự sụp CNĐQ, CNTD. đổ căn bản của chủ nghĩa rthực dân cũ - Sau đó, GV đặt câu hỏi: Qua sử cùng hệ thống thuộc địa của nó ở châu dụng SGK và quan sát lược đồ, Phi. enm hãy nêu các mốc chính - Từ sau 1975, nhân dân các thuộc địa trong công cuộc đấu tranh giành còn lại hoàn thành cuộc đấu tranh đánh độc lập của các nước châu Phi. đổ chủ nghĩa thực dân cũ, giành độc lập - HS theo dõi SGk, kết hợp và quyền sống của con người: quants lực đồ, trả lời câu hỏi. + Cuộc đấu tranh giành thắng lợi và các - GV nhận xét và tổng kết ( các nước cộng hoà ra đời Dimbahuê kiến thức cơ bản như SGK). (4/1980), Namibia (3/1991).
- + Ở cộng hoà Nam Phi, sau khi bầu cử - Về cuộc đấu tranh xoá bỏ chế dân chủ giữa các chủng tộc (4/1994), độ Apácthai ở Nam Phi, GV bổ ông Nenxơn Manđêla trở thành Tổng sung thêm tư liệu thông qua việc thống da đen đầu tiên , chấm dứt chệ độ hướng dẫn HS khai thác hình 16 phân biệt chủng tộc (Ápc thai) dã man (Nenxơn Mađêla ).GV hỏi: em ở nước này. biết gì về N.Mađêla và những đống góp của ông đối với cách mạng chgâu Phi? - Sau khi Hs trả lời, GV bổ sung và kết luận: N Mađêla là nhà hoạt động chính trị của Nam Phi. Ông sinh 1918 ở Tơranxcây khu tự trị giành riêng cho người Phi. - Năm 1944, Mađêla gia nhập Đại hội dân tộc Phi ( một tổ chức chính trị được thành lập 8/1912 viết tắt là ANC), sau đó pông giữ chức Tổng thư lí ANC.Mục tiê chủ yếu của Đại hội là thủ tiêu
- chế độ phân biệt chủng tộc Apácthai, xây dựng một xã hội dân chủ, bình đẳng. Dưới sự lãnh đạo của ANC, PTĐT chống chế độ phân biệt chủng tộc Nam Phi diễn ra ngày một mạnh mẽ, vì vậy, nhà cầm quyền Prêtôria đã bắt giam Mađêla và kết án ông tù chung thân. Sau hơn 27 năm bị giam giữ, trước áp lực đấu tranh của nhân dân tiến bộ trong và ngoài nước, ngày 11/2/1990, chính quyền Nam Phi buộc phải trả tự do cho ông. Sau đó, ngày 7/5/1991, Hội nghị toàn quốc ANC đã nhất trí bầu Mađêla làm Chủ tịch ANC.Sau cuộc bầu cử đa sắc tộc 1994, ngày 10/5/1994, Chủ tịch ANC Mađêla tuyên bó nhận chức
- Tổng thống nước cộng hoà Nam Phi, trở thành Tống thống da đen đầu tiên của nước này. Năm 1999, ông rời khỏi chức vụ. 2. Tình hình phát triển kinh tế - xã Trong lịch sử đấu tranh chống hội. chế độ phân biệt chủng tộc A ở - Sau khi giành độc lập,, các nước châu Nam Phi, Mađêla là người đấu Phi tiến hành công cuộc xây dựng đất tranh không mệt mỏi, góp phần nước và thu được một số thành tựu ban làm nên thắng lợi của cuộc đấu đầu. tranh này. Với đóng góp của ông - Tuy nhiên, châu Phi vẫn là châu lục cho sự nghiệp đấu tranh giải nghèo nàn, lạc hậu và gặp rất nhiều khó phóng con người khỏi sự kì thị, khăn: phân biệt chủng tộc, mađêla đã + Xung đột sắc tộc, tôn giáo, đảo chính, được nhận giải thưởng “Nôben nội chiến diễn ra liên miên. về hoà bình” (1993). + Bệnh tật và mù chữ. * Hoạt động 2: Cả lớp và cá + Sự bùng nổ về dân số nhân + Đói nghèo, nợ nước ngoài chồng chất. - GV đặt câu hỏi: Em hãy nêu rõ - Tổ chức thống nhất châu Phi đựợc những khó khăn của các nước thành lập (5/1963) đến năm 2002 đổi châu Phi trong công cuộc xây thành liên minh châu Phi (AU) đang
- dựng kinh tế - xã hội?Triển vọng triển khai nhiều chương trình phát triển phát triển của châu lục này ra của châu lục, song còn phải rất lâu dài, sao? gian khổ mới thu được kết quả. - HS căn cứ vào SGK và hiểu II. Các nước Mĩ Latinh biết thực tế để trả lời câu hỏi. 1. Vài nét vềm quá trinh đấu tranh - GV nhận xét, chốt lại vấn đề giành và bảo vệ độc lập dân tộc. cho HS (các sự kiện, dẫn chứng - Sau CTTTG thứ hai, Mĩ tìm cách cơ bản như SGK). biến MLT thành “sân sau” của mình và xây dựng các chế độ độc tài thân Mĩ. Vì thế, cuộc đấu tranh chống chế độ độc tài thânMĩ bùng nổ và phát triển. + Ngày 1/10/1959, cách mạng Cuba dưới sự lãnh đoạ của Phiđen Caxtơrô giành thắng lợi đã lật đổ chế độ độc tài Batixta thành lập nước cộng hoà Cuba do Phiđen Caxtơrô đứng đầu. * Hoạt động 3: Cả lớp và cá nhân
- - GV sử dụng lược đồ các nước Mĩ Latinh sau CTTH thứ hai và giới thiệu đôi nét về khu vực này: MLT gồm 33 nước Trung và Nam lục địa châu Mĩ và vùng Caribê, diện tích trên 20,5 triệu km2, dân số 531 triệu người (2002), rất già có tài nguyên và nông – lâm – khoáng sản. - Khác với châu Á và châu Phi, nhiều nớ Mĩ La tinh sờn giành được đọc lập từ tay Tây Ban Nha và Bồ Đào Nha. Vào đầu TK - Từ thập niên 609-70, phongvtrào đấu XIX nhưng sau đó lệ thuộc vào tranh chống Mĩ và chế độ độc tài thân Mĩ. Sau CTTG thứ hai, với ưu Mĩ ở khu vực này ngày càng phát triển thế hơn về kinh tế và quân sự, Mĩ và giành nhiều thắng lợi.: tìm cách biên MLT thành sân sau + Nhân dân Panama đấu tranh và thu của mình và xây dựng chế độ độc hồi được kênh đào Panama ( 1964 – tài thân Mĩ. Cũng vì thế, cuộc 1999). đấu tranh chống chệ độ độc tài +Đến 1983, 13 quốc gia ở vùng Caribê
- thân Mĩ bùng nổ và phát triển, giành được độc lập. tiêu biểu nhất là thắng lợi của - Với các hình thứ đấu tranh phong phú, cách mạng Cuba. ( bãi công của công nhân, nổi dậy của - Sau đó, GV đưa ra câu hỏi: nông dân, đấu tranh nghị trường, đặc Trên cơ sở quan sát lược đồ và biệt là đấu tranhvuc trang) MLT đã trở SGK, em hãy nêu những sự kiện thành “lục địa bùng cháy”. Các nước tiêu biểu trong phong trào đấu MLT lần lượt lật đổ chế độ đọc tài thân tranh giành độc lập của các Mĩ giành lại chủ quyền dân tộc (Chilê, nước MLT? Nicara goa, Vênêzuêla, Goatêmala ). - HS theo dõi SGK và lược đồ, trả lời câu hỏi. - GV nhận xét và đưa ra kết luận về các sự kiện tiêu biểu như SGK. - để bổ sung thêm hiểu biết của học sinh về CM Cuba, GV hướng dẫn các em khai thách hình 17 ( Phiđen Caxtơrô ), GV hỏi: Em biết gì về P và những đống góp của ông trong sự
- nghiêệp cách mạng Cuba.? - Sau khi HS trả lời, GV chốt lại: P sinh ngày 13/8/1927 tại tỉnh Ô –ri-en –tê trong một gia đình chủ đồn điền. 1945, ông học luật tại trường La –ha –ba –na, tham gia phong trào chống Mĩ ở Cô –lôm- bi- a (1948) sau đó về nước và đổ tiến sĩ Luật học năm 1950. - P là một người có trí tuệ, hiểu biết rộng, nhạy cảm và dũng cảm. Ông là người rất nổi trội trong học tập và thể thao, đặc biệt Ông có tài hùng biện hiếm có. Trân các diễn đàn trong nước và quốc tế, P kịch liệt lân san sự bất công, đòi quyền bình đẳng, chống áp bức và xoá nợ cho các nước nghèo. - 1952, P tập hợp một số thanh
- niên trong tổ chức “Phong trào cách mạng” để chống lạinchế độ độc tài Batixta.Sau cuộc tấn công trại kính Môn ca đa (26/7/1953) không thành, Ông bị bắt giam. Ra tù, sang Mêhicô, Ông tích cực tập hợp lựcn lượng.Cuối 1956, ông cùng 81 chiến sĩ về nước phát động nhân dân đấu tranh vũ 2. Tình hình phát triển kinh tế - xã trang lật đổ chế độ độc tài, thành hội. lập nhà nước cộng hoà Cuba (1/1/1959). Sau đó, P trởthành người lãnh đạo chính phủ cách mạng Cuba với các chức vụ: Bí - Sau khi khôi phục độc lập chủ quyền, thư thứ nhất BCH TW Đảng cộn các nước MLT tiến hành xây dựng và sản Cuba, Chủ tịch Hội đồng nhà phát triển kinh tế - xã hội, đạt được nước,và Chủ tịch Hội đồng bộ thành tựu quan trọng: Braxin, trưởng Cuba.Dưới sự lãnh đoạ Achentina, Mêhicô, đã trở thành các của ông, đất mước Cuab tiến nước công nghiệp mới NIC. hành nhiều cải cách dân chủ - Thập nhiên 80, các nước MLT gặp
- nằhm hoàn thành những nhiệm nhiều khó khăn: kinh tế suy thoái, lạm vụ cơ bản của cuộc CMDCND, phát tăng nhanh, nợ nước ngoài chồng tiến lên CNXH. chất, chính trị biến động phức tạp. - Với những hành động nghĩa - Thập niên 90, kinh tế MLT có chuyển hiệp và chính nghĩa, ông đã thu biến tích cực hơn, thu hút được nguồn phục được nhiều trái tim con vốnđầu tư nước ngoài (70 tỉ USD năm người. P và đất nước Cuba có 1994). Tuy nhiên những khó khăndsặt nhiều đóng góp quan trọng vào ra còn rất lớn nư tình trạng mâu thuẫn phongvtrào đấu tranh giành độc xã hội, nạn tham nhũng… lập dân tộc và tiến bộ xã hội trân thế giới.. Vi fvậy, P đã nhận được giải thưởng quốc tế Lênin (1961), giải thưởng anh hùng Lênin (1963), và nhiều giải thưởng cao quí của đất nước Việt Nam trao tặng. * Hoạt động 4: cả lớp và cá nhân - GV đặt câu hỏi: Hãy nêu những thành tựu và khó khăn chủ yếu
- của các nước MLT trong quá trình xây dựng và phát triển kinh tế - xã hội? - HS theo dõi, trả lời câu hỏi. - GV nhận xét và giúp HS tóm lược những vấn đề cơ bản nhất trên cơ sở những kiến thức đã trình bày. Trong SGK + cuối cùng, GV kết luận: Như vậy, từ sau CTTG thứ hai, cuộc đấu tranh giành và bảo vệ độc lập ở MLTđã bùng lên mạnh mẽ và giành được thắng lợi, tiêu biểu nhất là cách mạng Cuba (1952 - 1959). Sau khi khôi phục độc lập, chủ quyền, các nước MLT đều bắt tay vào công cuộc xây dựng và phát triển đất nước. mặc dù đạt được những thành tựu, song các nướC MLT liên tục
- phải đối mặt với nhiều khó khăn, thách thức và còn phải cố gắng rất nhiều, lâu dài để đưa MLT thực sự trở thành khu vực ổn định à phát triển. 4. Sơ kết bài học. - Củng cố: Yêu cầu HS tổng hợp kiến thức đã học và trả lời câu hỏi sau: 1. Những thành quả chính tong công cuộc đấu tranhgiành độc lập của nhân dân châu Phi sau CTTG thứ hai? Những khó khăn mà châu lục này đang đối mặt là gì? 2. Những thành tựu và khó khăn của ác nước MLT sau CTTTG thứ hai? - Dặc dò: + Sưu tầm tranh ảnh, tài liệu về 1 nước châu Phi hoặc MLT ( Tuỳ chọn). - Bài tập: 1. năm nào được lịh sử lựa chonj là “Năm chau Phi”? a. 1953 b. 1960 c. 1975 2. Lãnh tụ kiệt xuất của cách mạng và đất nước Cuba là ai? a. Phiđen Caxtơrô b. Nenxơn Manđêla c. G Nêru 3. Nối thời gian với sự kiện cho đúng
- Sự kiện Thời gian 1. Chế độ phân biệt chủng tộc a. 1/1/1959 Apacthai ở Nam phi bị xoá bỏ. 2. Tổ chức thống nhất châu Phi b.5/1963 được thành lập 3.Nước cộng hoà Cuba ra đời 2/1990 4. Mĩ từ bỏ quyền chiếm kênh đào d.1999 và trả lại cho Panama
CÓ THỂ BẠN MUỐN DOWNLOAD

markdown:
# CÁC NƯỚC CHÂU PHI VÀ MỸ LA TINH
Chia sẻ: Uyen Nguyen | Ngày: | Loại File: PDF | Số trang:16
![](images/blank.gif)
![](images/blank.gif)
lượt xem 19
download
![](http://image.tlvnimg.com/document/thumbnail/2010/20101219/dantri1209/80x100/lich_su_12_6_8203.jpg)
##
CÁC NƯỚC CHÂU PHI VÀ MỸ LA TINH
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](images/down16x21.png)
Về kiến thức Qua bài này giúp học sinh nắm đựơc: - Những nét cơ bản về quá trình đấu tranh giành độc lập của các nước châu Phi và Mĩ Latinh. - Công cuộc xây dựng kinh tế xã hội ( những thành tựu và khó khăn) của các nước châu Phi và Mĩ latinh sau chiến tranh thế giới thứ hai. 2. Về tư tưởng : - Trân trọng, cảm phục trước những thành quả đấu tranh của pTGPDT ở châu Phi và Mĩ Latinh. - Nhận thức sâu sắc về những khó khăn của các nước...
![](images/graphics/blank.gif)
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: CÁC NƯỚC CHÂU PHI VÀ MỸ LA TINH
- CAÙC NÖÔÙC CHAÂU PHI VAØ MÓLATINH I /MỤC TIÊU BÀI HỌC 1. Về kiến thức Qua bài này giúp học sinh nắm đựơc: - Những nét cơ bản về quá trình đấu tranh giành độc lập của các nước châu Phi và Mĩ Latinh. - Công cuộc xây dựng kinh tế xã hội ( những thành tựu và khó khăn) của các nước châu Phi và Mĩ latinh sau chiến tranh thế giới thứ hai. 2. Về tư tưởng : - Trân trọng, cảm phục trước những thành quả đấu tranh của pTGPDT ở châu Phi và Mĩ Latinh. - Nhận thức sâu sắc về những khó khăn của các nước này trong công cuộc xây dựng, phát triển kinh tế - xã hội, từ đó xây dựng tinh thần đoàn kết, tương trợ quốc tế. 3. Về kĩ năng: - Quan sát, khai thác lược đò và tranh ảnh..
- - Các kĩ năng tư duy,: So sánh, phân tích, tổng hợp, đánh giá sự kiện. II. THIẾT BỊ VÀ TÀI LIỆU DẠY HỌC - Lược đò châu Phi và Mĩ La tinh sau chiến thanh thế giới thứ hai - Một số tranh ảnh có liên quan - Các tài liệu tham khảo. III.TIẾN TRÌNH TỔ CHỨC DẠY HỌC 1.Kiểm ta bài cũ: * Câu hỏi: 1. Sửa đời, quá trình phát triển và vai trò của tổ chức ASEAN. 2. Nêu những thành tựu chính của ÂĐ trong công cuộc xây dựng đất nước sau CTTG thứ hai. 2. Dẫn dắt vào bài mới Sau CTTG thứ hai, phong trào giải phóng dân tộc và bảo vệ độc lập của châu Phi và MLT bùng nổ, đã giành đựơc thắng lợi to lớn.Bản đồ chính trị của 2 khu vực này có sự thay đổi căn bản: Một loạt các quốc gia độc lập ra đời, tình hình kinh tế - xã hội từng bước có sự thay đổi, nhưng còn không ít những khó khăn và nhiều nơi không ổn định. Vậy, quá trình đấu tranh giành và bảo vệ độc lập của các nước chấu Phi và MLT diễn ra như thế nào? Thành tựu khó khănhtrong công cuộc xây dựng
- và phát triển kinh tế xã hội của các nước này như thế nào? Đó là những vấn đề cơ bản mà ta cần tìm hiểu qua tiết này. 3. Tiến trình tổ chức dạy học Hoạt động của Gv và HS Kiến thứ cơ bản * Hoạt động 1: cả lớp và cá I.Các nước châu Phi nhân 1.vài nét về cuộc đấu tranhgiành độc - GV sử dụng lược đồ châu Phi lập sau CTTG thứ hai và giới thiệu - Sau CTTGthứ hai, PTĐTGĐL bùng vài nét về châu Phi: Châu Phi là nổ mạnh mẽ ở châu Phi. châu lục lớn thứ 3 thế giới (sau châu Á và châu Mĩ) bao gồm 57 quốc gia với diện tích khoảng 30,3 triệu km2, dân số 839 triệu người (2002). Đây là khu vực giàu taid nguyên và nông sản quý. Song do chính sách thống trị và vơ vét của cải của chủ nghĩa thực dân phương Tây mà - Phong trào đặc biệt phát triển từ những châu Phi trở nên nghèo nàn, lạc năm 50, trước hết là ở khu vực Bắc Phi, hậu. sau đó lan ra các nơi khác. Hàng loạt
- - Sau khi chiến tranh thế giới thứ các nứơc giành độc lập như: Ai cập nhất kết thúc, các nước đế quốc (1953), Libi (1952), Angiêri (1962), thắng trận phân chia phần chót Tuynidi, Marốc, Xu Đăng (1956 ), phạm vi thống trị của họ ở châu Gana (1957), Ghinê (1958)… Phi. - Năm 1960, được ghi nhận là “Năm - Sau khi CTTG thứ hai , cơn bão châu Phi” với 17 quốc gia (Ở Tây Phi, táp cách mạng giải phóng dân Đông Phi, Trung Phi) được trao trả độc tộc đã bùng nổ ở châu Phi và nơi lập. đây troẻ thành “Lục địa mới trổi - Năm 1975, cách mạng Môdămbích, dậy” trong cuộic đấu tranh chống Ăngôla giành thắnglợi, đánh dấu sự sụp CNĐQ, CNTD. đổ căn bản của chủ nghĩa rthực dân cũ - Sau đó, GV đặt câu hỏi: Qua sử cùng hệ thống thuộc địa của nó ở châu dụng SGK và quan sát lược đồ, Phi. enm hãy nêu các mốc chính - Từ sau 1975, nhân dân các thuộc địa trong công cuộc đấu tranh giành còn lại hoàn thành cuộc đấu tranh đánh độc lập của các nước châu Phi. đổ chủ nghĩa thực dân cũ, giành độc lập - HS theo dõi SGk, kết hợp và quyền sống của con người: quants lực đồ, trả lời câu hỏi. + Cuộc đấu tranh giành thắng lợi và các - GV nhận xét và tổng kết ( các nước cộng hoà ra đời Dimbahuê kiến thức cơ bản như SGK). (4/1980), Namibia (3/1991).
- + Ở cộng hoà Nam Phi, sau khi bầu cử - Về cuộc đấu tranh xoá bỏ chế dân chủ giữa các chủng tộc (4/1994), độ Apácthai ở Nam Phi, GV bổ ông Nenxơn Manđêla trở thành Tổng sung thêm tư liệu thông qua việc thống da đen đầu tiên , chấm dứt chệ độ hướng dẫn HS khai thác hình 16 phân biệt chủng tộc (Ápc thai) dã man (Nenxơn Mađêla ).GV hỏi: em ở nước này. biết gì về N.Mađêla và những đống góp của ông đối với cách mạng chgâu Phi? - Sau khi Hs trả lời, GV bổ sung và kết luận: N Mađêla là nhà hoạt động chính trị của Nam Phi. Ông sinh 1918 ở Tơranxcây khu tự trị giành riêng cho người Phi. - Năm 1944, Mađêla gia nhập Đại hội dân tộc Phi ( một tổ chức chính trị được thành lập 8/1912 viết tắt là ANC), sau đó pông giữ chức Tổng thư lí ANC.Mục tiê chủ yếu của Đại hội là thủ tiêu
- chế độ phân biệt chủng tộc Apácthai, xây dựng một xã hội dân chủ, bình đẳng. Dưới sự lãnh đạo của ANC, PTĐT chống chế độ phân biệt chủng tộc Nam Phi diễn ra ngày một mạnh mẽ, vì vậy, nhà cầm quyền Prêtôria đã bắt giam Mađêla và kết án ông tù chung thân. Sau hơn 27 năm bị giam giữ, trước áp lực đấu tranh của nhân dân tiến bộ trong và ngoài nước, ngày 11/2/1990, chính quyền Nam Phi buộc phải trả tự do cho ông. Sau đó, ngày 7/5/1991, Hội nghị toàn quốc ANC đã nhất trí bầu Mađêla làm Chủ tịch ANC.Sau cuộc bầu cử đa sắc tộc 1994, ngày 10/5/1994, Chủ tịch ANC Mađêla tuyên bó nhận chức
- Tổng thống nước cộng hoà Nam Phi, trở thành Tống thống da đen đầu tiên của nước này. Năm 1999, ông rời khỏi chức vụ. 2. Tình hình phát triển kinh tế - xã Trong lịch sử đấu tranh chống hội. chế độ phân biệt chủng tộc A ở - Sau khi giành độc lập,, các nước châu Nam Phi, Mađêla là người đấu Phi tiến hành công cuộc xây dựng đất tranh không mệt mỏi, góp phần nước và thu được một số thành tựu ban làm nên thắng lợi của cuộc đấu đầu. tranh này. Với đóng góp của ông - Tuy nhiên, châu Phi vẫn là châu lục cho sự nghiệp đấu tranh giải nghèo nàn, lạc hậu và gặp rất nhiều khó phóng con người khỏi sự kì thị, khăn: phân biệt chủng tộc, mađêla đã + Xung đột sắc tộc, tôn giáo, đảo chính, được nhận giải thưởng “Nôben nội chiến diễn ra liên miên. về hoà bình” (1993). + Bệnh tật và mù chữ. * Hoạt động 2: Cả lớp và cá + Sự bùng nổ về dân số nhân + Đói nghèo, nợ nước ngoài chồng chất. - GV đặt câu hỏi: Em hãy nêu rõ - Tổ chức thống nhất châu Phi đựợc những khó khăn của các nước thành lập (5/1963) đến năm 2002 đổi châu Phi trong công cuộc xây thành liên minh châu Phi (AU) đang
- dựng kinh tế - xã hội?Triển vọng triển khai nhiều chương trình phát triển phát triển của châu lục này ra của châu lục, song còn phải rất lâu dài, sao? gian khổ mới thu được kết quả. - HS căn cứ vào SGK và hiểu II. Các nước Mĩ Latinh biết thực tế để trả lời câu hỏi. 1. Vài nét vềm quá trinh đấu tranh - GV nhận xét, chốt lại vấn đề giành và bảo vệ độc lập dân tộc. cho HS (các sự kiện, dẫn chứng - Sau CTTTG thứ hai, Mĩ tìm cách cơ bản như SGK). biến MLT thành “sân sau” của mình và xây dựng các chế độ độc tài thân Mĩ. Vì thế, cuộc đấu tranh chống chế độ độc tài thânMĩ bùng nổ và phát triển. + Ngày 1/10/1959, cách mạng Cuba dưới sự lãnh đoạ của Phiđen Caxtơrô giành thắng lợi đã lật đổ chế độ độc tài Batixta thành lập nước cộng hoà Cuba do Phiđen Caxtơrô đứng đầu. * Hoạt động 3: Cả lớp và cá nhân
- - GV sử dụng lược đồ các nước Mĩ Latinh sau CTTH thứ hai và giới thiệu đôi nét về khu vực này: MLT gồm 33 nước Trung và Nam lục địa châu Mĩ và vùng Caribê, diện tích trên 20,5 triệu km2, dân số 531 triệu người (2002), rất già có tài nguyên và nông – lâm – khoáng sản. - Khác với châu Á và châu Phi, nhiều nớ Mĩ La tinh sờn giành được đọc lập từ tay Tây Ban Nha và Bồ Đào Nha. Vào đầu TK - Từ thập niên 609-70, phongvtrào đấu XIX nhưng sau đó lệ thuộc vào tranh chống Mĩ và chế độ độc tài thân Mĩ. Sau CTTG thứ hai, với ưu Mĩ ở khu vực này ngày càng phát triển thế hơn về kinh tế và quân sự, Mĩ và giành nhiều thắng lợi.: tìm cách biên MLT thành sân sau + Nhân dân Panama đấu tranh và thu của mình và xây dựng chế độ độc hồi được kênh đào Panama ( 1964 – tài thân Mĩ. Cũng vì thế, cuộc 1999). đấu tranh chống chệ độ độc tài +Đến 1983, 13 quốc gia ở vùng Caribê
- thân Mĩ bùng nổ và phát triển, giành được độc lập. tiêu biểu nhất là thắng lợi của - Với các hình thứ đấu tranh phong phú, cách mạng Cuba. ( bãi công của công nhân, nổi dậy của - Sau đó, GV đưa ra câu hỏi: nông dân, đấu tranh nghị trường, đặc Trên cơ sở quan sát lược đồ và biệt là đấu tranhvuc trang) MLT đã trở SGK, em hãy nêu những sự kiện thành “lục địa bùng cháy”. Các nước tiêu biểu trong phong trào đấu MLT lần lượt lật đổ chế độ đọc tài thân tranh giành độc lập của các Mĩ giành lại chủ quyền dân tộc (Chilê, nước MLT? Nicara goa, Vênêzuêla, Goatêmala ). - HS theo dõi SGK và lược đồ, trả lời câu hỏi. - GV nhận xét và đưa ra kết luận về các sự kiện tiêu biểu như SGK. - để bổ sung thêm hiểu biết của học sinh về CM Cuba, GV hướng dẫn các em khai thách hình 17 ( Phiđen Caxtơrô ), GV hỏi: Em biết gì về P và những đống góp của ông trong sự
- nghiêệp cách mạng Cuba.? - Sau khi HS trả lời, GV chốt lại: P sinh ngày 13/8/1927 tại tỉnh Ô –ri-en –tê trong một gia đình chủ đồn điền. 1945, ông học luật tại trường La –ha –ba –na, tham gia phong trào chống Mĩ ở Cô –lôm- bi- a (1948) sau đó về nước và đổ tiến sĩ Luật học năm 1950. - P là một người có trí tuệ, hiểu biết rộng, nhạy cảm và dũng cảm. Ông là người rất nổi trội trong học tập và thể thao, đặc biệt Ông có tài hùng biện hiếm có. Trân các diễn đàn trong nước và quốc tế, P kịch liệt lân san sự bất công, đòi quyền bình đẳng, chống áp bức và xoá nợ cho các nước nghèo. - 1952, P tập hợp một số thanh
- niên trong tổ chức “Phong trào cách mạng” để chống lạinchế độ độc tài Batixta.Sau cuộc tấn công trại kính Môn ca đa (26/7/1953) không thành, Ông bị bắt giam. Ra tù, sang Mêhicô, Ông tích cực tập hợp lựcn lượng.Cuối 1956, ông cùng 81 chiến sĩ về nước phát động nhân dân đấu tranh vũ 2. Tình hình phát triển kinh tế - xã trang lật đổ chế độ độc tài, thành hội. lập nhà nước cộng hoà Cuba (1/1/1959). Sau đó, P trởthành người lãnh đạo chính phủ cách mạng Cuba với các chức vụ: Bí - Sau khi khôi phục độc lập chủ quyền, thư thứ nhất BCH TW Đảng cộn các nước MLT tiến hành xây dựng và sản Cuba, Chủ tịch Hội đồng nhà phát triển kinh tế - xã hội, đạt được nước,và Chủ tịch Hội đồng bộ thành tựu quan trọng: Braxin, trưởng Cuba.Dưới sự lãnh đoạ Achentina, Mêhicô, đã trở thành các của ông, đất mước Cuab tiến nước công nghiệp mới NIC. hành nhiều cải cách dân chủ - Thập nhiên 80, các nước MLT gặp
- nằhm hoàn thành những nhiệm nhiều khó khăn: kinh tế suy thoái, lạm vụ cơ bản của cuộc CMDCND, phát tăng nhanh, nợ nước ngoài chồng tiến lên CNXH. chất, chính trị biến động phức tạp. - Với những hành động nghĩa - Thập niên 90, kinh tế MLT có chuyển hiệp và chính nghĩa, ông đã thu biến tích cực hơn, thu hút được nguồn phục được nhiều trái tim con vốnđầu tư nước ngoài (70 tỉ USD năm người. P và đất nước Cuba có 1994). Tuy nhiên những khó khăndsặt nhiều đóng góp quan trọng vào ra còn rất lớn nư tình trạng mâu thuẫn phongvtrào đấu tranh giành độc xã hội, nạn tham nhũng… lập dân tộc và tiến bộ xã hội trân thế giới.. Vi fvậy, P đã nhận được giải thưởng quốc tế Lênin (1961), giải thưởng anh hùng Lênin (1963), và nhiều giải thưởng cao quí của đất nước Việt Nam trao tặng. * Hoạt động 4: cả lớp và cá nhân - GV đặt câu hỏi: Hãy nêu những thành tựu và khó khăn chủ yếu
- của các nước MLT trong quá trình xây dựng và phát triển kinh tế - xã hội? - HS theo dõi, trả lời câu hỏi. - GV nhận xét và giúp HS tóm lược những vấn đề cơ bản nhất trên cơ sở những kiến thức đã trình bày. Trong SGK + cuối cùng, GV kết luận: Như vậy, từ sau CTTG thứ hai, cuộc đấu tranh giành và bảo vệ độc lập ở MLTđã bùng lên mạnh mẽ và giành được thắng lợi, tiêu biểu nhất là cách mạng Cuba (1952 - 1959). Sau khi khôi phục độc lập, chủ quyền, các nước MLT đều bắt tay vào công cuộc xây dựng và phát triển đất nước. mặc dù đạt được những thành tựu, song các nướC MLT liên tục
- phải đối mặt với nhiều khó khăn, thách thức và còn phải cố gắng rất nhiều, lâu dài để đưa MLT thực sự trở thành khu vực ổn định à phát triển. 4. Sơ kết bài học. - Củng cố: Yêu cầu HS tổng hợp kiến thức đã học và trả lời câu hỏi sau: 1. Những thành quả chính tong công cuộc đấu tranhgiành độc lập của nhân dân châu Phi sau CTTG thứ hai? Những khó khăn mà châu lục này đang đối mặt là gì? 2. Những thành tựu và khó khăn của ác nước MLT sau CTTTG thứ hai? - Dặc dò: + Sưu tầm tranh ảnh, tài liệu về 1 nước châu Phi hoặc MLT ( Tuỳ chọn). - Bài tập: 1. năm nào được lịh sử lựa chonj là “Năm chau Phi”? a. 1953 b. 1960 c. 1975 2. Lãnh tụ kiệt xuất của cách mạng và đất nước Cuba là ai? a. Phiđen Caxtơrô b. Nenxơn Manđêla c. G Nêru 3. Nối thời gian với sự kiện cho đúng
- Sự kiện Thời gian 1. Chế độ phân biệt chủng tộc a. 1/1/1959 Apacthai ở Nam phi bị xoá bỏ. 2. Tổ chức thống nhất châu Phi b.5/1963 được thành lập 3.Nước cộng hoà Cuba ra đời 2/1990 4. Mĩ từ bỏ quyền chiếm kênh đào d.1999 và trả lại cho Panama
CÓ THỂ BẠN MUỐN DOWNLOAD

Server: Apache/2.2.15 (CentOS)


text:
PHÂN LOẠI BỆNH BẠCH CẦU CẤPBẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO
Chia sẻ: Nguyen Linh | Ngày: | Loại File: PDF | Số trang:27
70
lượt xem 13
download
lượt xem 13
download
PHÂN LOẠI BỆNH BẠCH CẦU CẤPBẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO
Mô tả tài liệu
Download Vui lòng tải xuống để xem tài liệu đầy đủ
Mục tiêu nghiên cứu: Ứng dụng kỹ thuật xác định dấu ấn miễn dịch để chẩn đoán chính xác phân loại dưới nhóm của bệnh bạch cầu cấp và xem xét tính khả thi của việc đánh giá bệnh tồn lưu ác tính.
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: PHÂN LOẠI BỆNH BẠCH CẦU CẤPBẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO
- PHÂN LOẠI BỆNH BẠCH CẦU CẤP BẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO TÓM TẮT Mục tiêu nghiên cứu: Ứng dụng kỹ thuật xác định dấu ấn miễn dịch để chẩn đoán chính xác phân loại dưới nhóm của bệnh bạch cầu cấp và xem xét tính khả thi của việc đánh giá bệnh tồn lưu ác tính. Phương pháp nghiên cứu: Nghiên cứu cắt ngang. Sử dụng bộ kit 3 màu huỳnh quang của hãng Becton Dickinson (Mỹ) và máy Flow Cytometry Facs Calibur, tiến hành nghiên cứu trên bệnh nhân bạch cầu cấp tại bệnh viện Truyền máu Huyết Học từ tháng 1/2005 đến tháng 12/2006. Kết quả: Tổng số 220 bệnh nhân (bn) bạch cầu cấp: 117 bn được chẩn đoán bạch cầu cấp vùng tủy (AML), 98 bn bạch cầu cấp dòng lympho (ALL), và 5 bn Biphenotype. Trong đó, ở trẻ em có 62,92% là ALL và 34,83% AML. Ngược lại, ở người lớn có 65,65% AML và 32,06% ALL. Các th ể bệnh thường gặp trong nhóm ALL là B-precursor (62,25%) và T-ALL (20,41%); trong nhóm AML là 30,77% M2, 23,93% M1, và 20,51% M4. Có 52,73% b ệnh nhân mang dấu ấn dị
- loại, thường gặp nhất là CD13, CD15, GLY A, CD33, CD4, CD19, CD 5, CD22. Kết quả nghiên cứu của chúng tôi có thể so sánh với các nghiên cứu khác. Kết luận: Phân tích dấu ấn miễn dịch tế bào có thể xác định rõ các thể bệnh bạch cầu cấp, hạn chế sai sót khi chẩn đoán bằng h ình thái học. Thêm vào đó, tần suất xuất hiện thường xuyên của các dấu ấn dị loại cho thấy tính khả thi của việc đánh giá tồn lưu tế bào ác tính sau mỗi đợt điều trị để tiên lượng bệnh. ABSTRACT Objective: Application of immunophenotyping to clasify differrent subtypes of acute leukemia and to estimat e the feasibility in evaluating minimal residual disease. Method: Cross-sectional research. From Jan. 2005 to Dec. 2006, we used 3-colour-fluorescence panel of Becton Dickinson Company (USA) and Flow Cytometry Facs Calibur machine to immunophenotype 220 pa tients with acute leukemia at Blood Transfusion and Hematology Hospital. Results: The results as follows: 117 patients with AML, 98 patients with ALL, và 5 patients with biphenotypic leukemia. There were 62.92% ALL and 34.83% AML in children, 65.65% AML and 32.06% ALL in adults. The common subtypes were 62.25% B-precursor, 20.41% T-ALL in ALL; 30.77% M2, 23.93% M1, 20.51% M4 in AML. There was 52.73% cases with aberrant
- immunophenotypes mostly CD13, CD15, GLY A, CD33, CD4, CD19, CD5, CD22. Our results may be comparable with other studies. Conclusion: Immunophenotyping can determine the subtypes of acute leukemia and to decrease errors of morphologic classification. In addition, the frequent expression of aberrant markers is feasible to evaluate minimal resi dual disease. ĐẶT VẤN ĐỀ Từ 1976, việc chẩn đoán và phân loại bệnh bạch cầu cấp hoàn toàn dựa trên hình thái học và hoá học tế bào theo tiêu chuẩn phân loại của FAB (French – American- British). Gần đây trên thế giới, việc xác định dấu ấn miễn dịch bằng kỹ thuật tế bào dòng chảy đã được ứng dụng nhằm phân loại các phụ nhóm của bệnh bạch cầu cấp như: B-ALL (bạch cầu cấp dòng lympho T), T-ALL (bạch cầu cấp dòng lympho B), AML (bạch cầu cấp dòng tủy), đặc biệt là những trường hợp không biệt hóa,...(9,10,12) Và thực tế việc chẩn đoán bệnh bạch cầu cấp hiện nay đòi hỏi phải phối hợp nhiều tiêu chuẩn đánh giá khác nhau về hình thái học, dấu ấn miễn dịch, di truyền tế bào, và đặc điểm lâm sàng để có chẩn đoán chính xác(3,8,13). Tại bệnh viện Truyền máu Huyết học, tp HCM chúng tôi đã áp dụng kỹ thuật xác định dấu ấn miễn dịch trong chẩn đoán bắt đầu từ cuối năm 1999, và trong những năm tiếp theo kỹ thuật này ngày càng hoàn thiện. Từ năm 2005, chúng tôi áp dụng thường qui kỹ thuật này với bộ kit phân loại đầy đủ hơn để chẩn
- đoán và phân loại chính xác bệnh bạch cầu cấp đồng thời ứng dụng để phát hiện các dấu ấn dị loại nhằm làm cơ sở đánh giá bệnh ác tính tồn lưu tối thiểu (MRD) sau điều trị giúp tiên lượng khả năng tái phát bệnh. ĐỐI TƯỢNG - PHƯƠNG PHÁP NGHIÊN CỨU Dân số nghiên cứu Bệnh nhân được chẩn đoán bệnh bạch cầu cấp tại BV Truyền Máu Huyết Học TP.HCM (từ tháng 1/2005 đến tháng 12/2006). Tiêu chuẩn chọn bệnh - Khám lâm sàng hướng tới bệnh bạch cầu cấp. - Có kết quả huyết đồ. - Có kết quả tủy đồ chẩn đoán xác định bệnh bạch cầu cấp. - Chỉ tiến hành khảo sát dấu ấn miễn dịch ở mẫu máu ngoại vi có số nguyên bào (blast) ≥ 50% hay mẫu tủy có blast ≥ 30%. Tiêu chuẩn loại trừ - Bệnh nhân đã được điều trị. - Lượng dịch tủy xương < 500 µl.
- - Mẫu tủy lẫn nhiều máu hay ít tế bào. Thuốc thử Của hãng BECTON DICKINSON (Mỹ). Sử dụng panel 3 màu huỳnh quang gồm: - Fluorescein Isothiocyanate (FITC). - Phycoerythrin (PE). - Per CP. Qui trình thực hiện - Sử dụng máu toàn phần có blast ≥ 50% trong chống đông EDTA hay mẫu tủy co blast ≥ 30% trong chống đông ACD hay Heparin. - Chuẩn bị 10 ống đựng mẫu máu hoặc mẫu tủy, đánh số thứ tự và lần lượt ủ với các thuốc thử như sau: FICT PE PER ỐNG CP
- 1 IgG IgG CD 2a 1 45 2 CD CD CD 45 14 45 3 CD 3 CD CD 19 45 4 CD CD 4 CD 10 45 5 CD CD CD 20 22 45 6 CD 7 CD CD 33 45 7 HLA- CD CD DR 13 45
- 8 CD CD 5 CD 15 45 9 CD GlyA CD 61 45 10 CD CD2 CD 34 45 - Sau khi ủ với các thuốc thử, mẫu được phân tích trên máy Flow Cytometry Facs Calibur với các phần mềm chuyên biệt để phân tích và thống kê trên hệ thống máy tính Macintos Quadra 650. - Dựa trên các biểu đồ có 3 thông số CD 45 FITC, SIDE SCATTER và CD 45 PerCP cho phép phân khu 4 quần thể tế bào bình thường: lymphocyte, monocyte, granulocyte, hồng cầu nhân và quần thể tế bào blast. Kế tiếp, dựa vào các dấu ấn miễn dịch của quần thể tế bào blast để xác định thể bạch cầu cấp dựa vào bảng phân loại trên. Tiêu chuẩn xếp loại bệnh AML Bạch cầu cấp dòng tủy (3, 8, 14)
- C C H C C C C C G D 13 D 33 LA-DR D 34 D 15 D 45 D 14 D LY A 41/61 M + + + + - + - - - 0 ++ - M + + + + - + - - - 1 /+ M + + + + + + - - - 2 /- ++ M + + - - + + - - - 3 /+ ++ M + + + - + + + - - 4 /+ M + + + + + + + - -
- 5 /- ++ M - + + + - Y - - + ẾU 6 /+ /- ++ M - + + + - - - + - 7 /- ++ Bạch cầu cấp dòng lympho (2, 6, 10, 16) ALL C C D 10 D 19 D 20 D 22 R D 34 D 2 D3 D4 D5 D7 B + - - Precur /+ ++ sor P - - re-B /-
- B + - -ALL /- ++ T - - -ALL /- /+ /+ Ghi chú: -/+: âm tính nhiều hơn dương tính. +/-: dương tính nhiều hơn âm tính. Ngưỡng dương tính: > 30% đối với các dấu ấn dòng tủy, > 20% đối với các dấu ấn dòng lympho. BI PHENOTYPE Hội đủ 2 tiêu chuẩn: 1. CD 34 +++ (bắt buộc). 2. ít nhất có 2 dấu ấn miễn dịch dòng tủy: CD 13, CD 33, CD 14 và 2 dấu ấn miễn dịch của dòng lympho (lympho B: CD 10, CD 19 hoặc lympho T: CD 2, CD 5) dương tính tương đương với quần thể blast. Phân tích số liệu
- Số liệu được thu thập, xử lý và phân tích bằng phần mềm SPSS. KẾT QUẢ Kết quả tổng quát Tổng số trường hợp thu thập được: 220 ca tần tỉ lệ số % nam: 103 46,82 nữ: 117 53,18 Giới tính tổng cộng 220 100 tỉ lệ nam/nữ: 1/1,14 (0,96) Bệnh aml: 117 53,18 lý all: 98 44,55
- tần tỉ lệ số % biphenotype: 5 2,27 tổng cộng 220 100 tỉ lệ aml/all: 1,14/1 (1,14) Nhận xét: nam ít hơn nữ, bệnh AML nhiều hơn ALL. Phân bố kết quả dấu ấn miễn dịch theo tuổi TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn 3- AML M0 3 5 8 6,84 5%* 23,9 15- M1 4 23 28 3 20%*
- TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn 1 30,7 25- M2 26 36 0 7 23%* 11,1 5- M3 4 9 13 1 10%* 20,5 20- M4 6 18 24 1 30%* 2- M5 1 0 1 0,85 9%* 3- M6 2 2 4 3,42 5%* 3- M7 1 2 3 2,56 12%*
- TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn TỔN 3 11 100, 86 G 1 7 00 B- 3 62,2 63- 29 61 precursor 2 5 68%** PRE- 9- ALL 6 1 7 7,14 B 16%** PRE- 1- 1 1 2 2,04 T 6%** B- 3- 5 3 8 8,16 ALL 4%** T- 1 20,4 12- 8 20 ALL 2 1 18%**
- TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn TỔN 5 100, 42 98 G CỘNG 6 00 Biphenoty 2 3 5 2,27 pe Tổng 8 13 22 100 cộng 9 1 0 Ghi chú: * theo HEMATOLOGY basic principles and practice(7) ** theo Williams HEMATOLOGY(10) Nhận xét: AML-M2, M4, M1 có tỉ lệ cao ở người lớn > 15 tuổi, ALL phân typ B-precursor, T-ALL có tỉ lệ cao tương đương nhau ở cả người lớn và trẻ em. Phân bố kết quả dấu ấn miễn dịch theo giới tính Phân loại dòng tế bào Giới Tổn Tỉ lệ g cộng %
- Na N m ữ AML M0 3 5 8 6,84 M1 18 10 28 23,93 M2 11 25 36 30,77 M3 8 5 13 11,11 M4 14 10 24 20,51 M5 1 0 1 0,85 M6 3 1 4 3,42 M7 2 1 3 2,56
- Giới Tổn Tỉ lệ Phân loại dòng tế bào N g cộng % Na m ữ TỔNG 100,0 62 56 117 CỘNG 0 B- ALL 24 37 61 62,25 PRECURSOR PRE-B 3 4 7 7,14 PRE-T 1 1 2 2,04 B-ALL 3 5 8 8,16 T-ALL 8 12 20 20,41
- Giới Tổn Tỉ lệ Phân loại dòng tế bào N g cộng % Na m ữ TỔNG 100,0 39 59 98 CỘNG 0 Biphenoty 2 3 5 2,27 pe Tổng 11 103 220 100 Cộng 7 Nhận xét: các dòng xuất hiện với tần suất cao theo thứ tự là AML-M2, M4, M1, B-PRECURSOR, T-ALL,... tương đương nhau ở cả 2 giới. So sánh kết quả chẩn đoán tủy đồ và immunophenotyping Tần Immuno Tần Tủy đồ số phenotyping số
- Tần Immuno Tần Tủy đồ số phenotyping số Theo dõi 58 Theo dõi AML AML 0 M0 0 M0 2 M1 1 M1 8 M2 24 M2 62 M3 4 M3 13 M4 5 M4 24 M5 8 M5 1 M6 8 M6 4
- Tần Immuno Tần Tủy đồ số phenotyping số M7 0 M7 3 Tổng cộng Tổng cộng 108 117 Theo Dõi 62 theo dõi ALL ALL 0 ALL-L1 1 B-precursor 37 ALL-L2 30 PRE-B 7 ALL-3 1 PRE-T 2 B-ALL 32 T-ALL 20
CÓ THỂ BẠN MUỐN DOWNLOAD

markdown:
# PHÂN LOẠI BỆNH BẠCH CẦU CẤPBẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO
Chia sẻ: Nguyen Linh | Ngày: | Loại File: PDF | Số trang:27
![](images/blank.gif)
![](images/blank.gif)
70
lượt xem 13
download
lượt xem 13
download
![](http://image.tlvnimg.com/document/thumbnail/2011/20110504/sonkim111/80x100/33_0647.jpg)
##
PHÂN LOẠI BỆNH BẠCH CẦU CẤPBẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO
Mô tả tài liệu
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](images/down16x21.png)
Mục tiêu nghiên cứu: Ứng dụng kỹ thuật xác định dấu ấn miễn dịch để chẩn đoán chính xác phân loại dưới nhóm của bệnh bạch cầu cấp và xem xét tính khả thi của việc đánh giá bệnh tồn lưu ác tính.
Chủ đề:
![](images/graphics/blank.gif)
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: PHÂN LOẠI BỆNH BẠCH CẦU CẤPBẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO
- PHÂN LOẠI BỆNH BẠCH CẦU CẤP BẰNG DẤU ẤN MIỄN DỊCH TẾ BÀO TÓM TẮT Mục tiêu nghiên cứu: Ứng dụng kỹ thuật xác định dấu ấn miễn dịch để chẩn đoán chính xác phân loại dưới nhóm của bệnh bạch cầu cấp và xem xét tính khả thi của việc đánh giá bệnh tồn lưu ác tính. Phương pháp nghiên cứu: Nghiên cứu cắt ngang. Sử dụng bộ kit 3 màu huỳnh quang của hãng Becton Dickinson (Mỹ) và máy Flow Cytometry Facs Calibur, tiến hành nghiên cứu trên bệnh nhân bạch cầu cấp tại bệnh viện Truyền máu Huyết Học từ tháng 1/2005 đến tháng 12/2006. Kết quả: Tổng số 220 bệnh nhân (bn) bạch cầu cấp: 117 bn được chẩn đoán bạch cầu cấp vùng tủy (AML), 98 bn bạch cầu cấp dòng lympho (ALL), và 5 bn Biphenotype. Trong đó, ở trẻ em có 62,92% là ALL và 34,83% AML. Ngược lại, ở người lớn có 65,65% AML và 32,06% ALL. Các th ể bệnh thường gặp trong nhóm ALL là B-precursor (62,25%) và T-ALL (20,41%); trong nhóm AML là 30,77% M2, 23,93% M1, và 20,51% M4. Có 52,73% b ệnh nhân mang dấu ấn dị
- loại, thường gặp nhất là CD13, CD15, GLY A, CD33, CD4, CD19, CD 5, CD22. Kết quả nghiên cứu của chúng tôi có thể so sánh với các nghiên cứu khác. Kết luận: Phân tích dấu ấn miễn dịch tế bào có thể xác định rõ các thể bệnh bạch cầu cấp, hạn chế sai sót khi chẩn đoán bằng h ình thái học. Thêm vào đó, tần suất xuất hiện thường xuyên của các dấu ấn dị loại cho thấy tính khả thi của việc đánh giá tồn lưu tế bào ác tính sau mỗi đợt điều trị để tiên lượng bệnh. ABSTRACT Objective: Application of immunophenotyping to clasify differrent subtypes of acute leukemia and to estimat e the feasibility in evaluating minimal residual disease. Method: Cross-sectional research. From Jan. 2005 to Dec. 2006, we used 3-colour-fluorescence panel of Becton Dickinson Company (USA) and Flow Cytometry Facs Calibur machine to immunophenotype 220 pa tients with acute leukemia at Blood Transfusion and Hematology Hospital. Results: The results as follows: 117 patients with AML, 98 patients with ALL, và 5 patients with biphenotypic leukemia. There were 62.92% ALL and 34.83% AML in children, 65.65% AML and 32.06% ALL in adults. The common subtypes were 62.25% B-precursor, 20.41% T-ALL in ALL; 30.77% M2, 23.93% M1, 20.51% M4 in AML. There was 52.73% cases with aberrant
- immunophenotypes mostly CD13, CD15, GLY A, CD33, CD4, CD19, CD5, CD22. Our results may be comparable with other studies. Conclusion: Immunophenotyping can determine the subtypes of acute leukemia and to decrease errors of morphologic classification. In addition, the frequent expression of aberrant markers is feasible to evaluate minimal resi dual disease. ĐẶT VẤN ĐỀ Từ 1976, việc chẩn đoán và phân loại bệnh bạch cầu cấp hoàn toàn dựa trên hình thái học và hoá học tế bào theo tiêu chuẩn phân loại của FAB (French – American- British). Gần đây trên thế giới, việc xác định dấu ấn miễn dịch bằng kỹ thuật tế bào dòng chảy đã được ứng dụng nhằm phân loại các phụ nhóm của bệnh bạch cầu cấp như: B-ALL (bạch cầu cấp dòng lympho T), T-ALL (bạch cầu cấp dòng lympho B), AML (bạch cầu cấp dòng tủy), đặc biệt là những trường hợp không biệt hóa,...(9,10,12) Và thực tế việc chẩn đoán bệnh bạch cầu cấp hiện nay đòi hỏi phải phối hợp nhiều tiêu chuẩn đánh giá khác nhau về hình thái học, dấu ấn miễn dịch, di truyền tế bào, và đặc điểm lâm sàng để có chẩn đoán chính xác(3,8,13). Tại bệnh viện Truyền máu Huyết học, tp HCM chúng tôi đã áp dụng kỹ thuật xác định dấu ấn miễn dịch trong chẩn đoán bắt đầu từ cuối năm 1999, và trong những năm tiếp theo kỹ thuật này ngày càng hoàn thiện. Từ năm 2005, chúng tôi áp dụng thường qui kỹ thuật này với bộ kit phân loại đầy đủ hơn để chẩn
- đoán và phân loại chính xác bệnh bạch cầu cấp đồng thời ứng dụng để phát hiện các dấu ấn dị loại nhằm làm cơ sở đánh giá bệnh ác tính tồn lưu tối thiểu (MRD) sau điều trị giúp tiên lượng khả năng tái phát bệnh. ĐỐI TƯỢNG - PHƯƠNG PHÁP NGHIÊN CỨU Dân số nghiên cứu Bệnh nhân được chẩn đoán bệnh bạch cầu cấp tại BV Truyền Máu Huyết Học TP.HCM (từ tháng 1/2005 đến tháng 12/2006). Tiêu chuẩn chọn bệnh - Khám lâm sàng hướng tới bệnh bạch cầu cấp. - Có kết quả huyết đồ. - Có kết quả tủy đồ chẩn đoán xác định bệnh bạch cầu cấp. - Chỉ tiến hành khảo sát dấu ấn miễn dịch ở mẫu máu ngoại vi có số nguyên bào (blast) ≥ 50% hay mẫu tủy có blast ≥ 30%. Tiêu chuẩn loại trừ - Bệnh nhân đã được điều trị. - Lượng dịch tủy xương < 500 µl.
- - Mẫu tủy lẫn nhiều máu hay ít tế bào. Thuốc thử Của hãng BECTON DICKINSON (Mỹ). Sử dụng panel 3 màu huỳnh quang gồm: - Fluorescein Isothiocyanate (FITC). - Phycoerythrin (PE). - Per CP. Qui trình thực hiện - Sử dụng máu toàn phần có blast ≥ 50% trong chống đông EDTA hay mẫu tủy co blast ≥ 30% trong chống đông ACD hay Heparin. - Chuẩn bị 10 ống đựng mẫu máu hoặc mẫu tủy, đánh số thứ tự và lần lượt ủ với các thuốc thử như sau: FICT PE PER ỐNG CP
- 1 IgG IgG CD 2a 1 45 2 CD CD CD 45 14 45 3 CD 3 CD CD 19 45 4 CD CD 4 CD 10 45 5 CD CD CD 20 22 45 6 CD 7 CD CD 33 45 7 HLA- CD CD DR 13 45
- 8 CD CD 5 CD 15 45 9 CD GlyA CD 61 45 10 CD CD2 CD 34 45 - Sau khi ủ với các thuốc thử, mẫu được phân tích trên máy Flow Cytometry Facs Calibur với các phần mềm chuyên biệt để phân tích và thống kê trên hệ thống máy tính Macintos Quadra 650. - Dựa trên các biểu đồ có 3 thông số CD 45 FITC, SIDE SCATTER và CD 45 PerCP cho phép phân khu 4 quần thể tế bào bình thường: lymphocyte, monocyte, granulocyte, hồng cầu nhân và quần thể tế bào blast. Kế tiếp, dựa vào các dấu ấn miễn dịch của quần thể tế bào blast để xác định thể bạch cầu cấp dựa vào bảng phân loại trên. Tiêu chuẩn xếp loại bệnh AML Bạch cầu cấp dòng tủy (3, 8, 14)
- C C H C C C C C G D 13 D 33 LA-DR D 34 D 15 D 45 D 14 D LY A 41/61 M + + + + - + - - - 0 ++ - M + + + + - + - - - 1 /+ M + + + + + + - - - 2 /- ++ M + + - - + + - - - 3 /+ ++ M + + + - + + + - - 4 /+ M + + + + + + + - -
- 5 /- ++ M - + + + - Y - - + ẾU 6 /+ /- ++ M - + + + - - - + - 7 /- ++ Bạch cầu cấp dòng lympho (2, 6, 10, 16) ALL C C D 10 D 19 D 20 D 22 R D 34 D 2 D3 D4 D5 D7 B + - - Precur /+ ++ sor P - - re-B /-
- B + - -ALL /- ++ T - - -ALL /- /+ /+ Ghi chú: -/+: âm tính nhiều hơn dương tính. +/-: dương tính nhiều hơn âm tính. Ngưỡng dương tính: > 30% đối với các dấu ấn dòng tủy, > 20% đối với các dấu ấn dòng lympho. BI PHENOTYPE Hội đủ 2 tiêu chuẩn: 1. CD 34 +++ (bắt buộc). 2. ít nhất có 2 dấu ấn miễn dịch dòng tủy: CD 13, CD 33, CD 14 và 2 dấu ấn miễn dịch của dòng lympho (lympho B: CD 10, CD 19 hoặc lympho T: CD 2, CD 5) dương tính tương đương với quần thể blast. Phân tích số liệu
- Số liệu được thu thập, xử lý và phân tích bằng phần mềm SPSS. KẾT QUẢ Kết quả tổng quát Tổng số trường hợp thu thập được: 220 ca tần tỉ lệ số % nam: 103 46,82 nữ: 117 53,18 Giới tính tổng cộng 220 100 tỉ lệ nam/nữ: 1/1,14 (0,96) Bệnh aml: 117 53,18 lý all: 98 44,55
- tần tỉ lệ số % biphenotype: 5 2,27 tổng cộng 220 100 tỉ lệ aml/all: 1,14/1 (1,14) Nhận xét: nam ít hơn nữ, bệnh AML nhiều hơn ALL. Phân bố kết quả dấu ấn miễn dịch theo tuổi TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn 3- AML M0 3 5 8 6,84 5%* 23,9 15- M1 4 23 28 3 20%*
- TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn 1 30,7 25- M2 26 36 0 7 23%* 11,1 5- M3 4 9 13 1 10%* 20,5 20- M4 6 18 24 1 30%* 2- M5 1 0 1 0,85 9%* 3- M6 2 2 4 3,42 5%* 3- M7 1 2 3 2,56 12%*
- TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn TỔN 3 11 100, 86 G 1 7 00 B- 3 62,2 63- 29 61 precursor 2 5 68%** PRE- 9- ALL 6 1 7 7,14 B 16%** PRE- 1- 1 1 2 2,04 T 6%** B- 3- 5 3 8 8,16 ALL 4%** T- 1 20,4 12- 8 20 ALL 2 1 18%**
- TUỔ tổn tỉ lệ Th ≤ ≥ I 15 t 16 t g cộng % eo y văn TỔN 5 100, 42 98 G CỘNG 6 00 Biphenoty 2 3 5 2,27 pe Tổng 8 13 22 100 cộng 9 1 0 Ghi chú: * theo HEMATOLOGY basic principles and practice(7) ** theo Williams HEMATOLOGY(10) Nhận xét: AML-M2, M4, M1 có tỉ lệ cao ở người lớn > 15 tuổi, ALL phân typ B-precursor, T-ALL có tỉ lệ cao tương đương nhau ở cả người lớn và trẻ em. Phân bố kết quả dấu ấn miễn dịch theo giới tính Phân loại dòng tế bào Giới Tổn Tỉ lệ g cộng %
- Na N m ữ AML M0 3 5 8 6,84 M1 18 10 28 23,93 M2 11 25 36 30,77 M3 8 5 13 11,11 M4 14 10 24 20,51 M5 1 0 1 0,85 M6 3 1 4 3,42 M7 2 1 3 2,56
- Giới Tổn Tỉ lệ Phân loại dòng tế bào N g cộng % Na m ữ TỔNG 100,0 62 56 117 CỘNG 0 B- ALL 24 37 61 62,25 PRECURSOR PRE-B 3 4 7 7,14 PRE-T 1 1 2 2,04 B-ALL 3 5 8 8,16 T-ALL 8 12 20 20,41
- Giới Tổn Tỉ lệ Phân loại dòng tế bào N g cộng % Na m ữ TỔNG 100,0 39 59 98 CỘNG 0 Biphenoty 2 3 5 2,27 pe Tổng 11 103 220 100 Cộng 7 Nhận xét: các dòng xuất hiện với tần suất cao theo thứ tự là AML-M2, M4, M1, B-PRECURSOR, T-ALL,... tương đương nhau ở cả 2 giới. So sánh kết quả chẩn đoán tủy đồ và immunophenotyping Tần Immuno Tần Tủy đồ số phenotyping số
- Tần Immuno Tần Tủy đồ số phenotyping số Theo dõi 58 Theo dõi AML AML 0 M0 0 M0 2 M1 1 M1 8 M2 24 M2 62 M3 4 M3 13 M4 5 M4 24 M5 8 M5 1 M6 8 M6 4
- Tần Immuno Tần Tủy đồ số phenotyping số M7 0 M7 3 Tổng cộng Tổng cộng 108 117 Theo Dõi 62 theo dõi ALL ALL 0 ALL-L1 1 B-precursor 37 ALL-L2 30 PRE-B 7 ALL-3 1 PRE-T 2 B-ALL 32 T-ALL 20
CÓ THỂ BẠN MUỐN DOWNLOAD