有关Java 5.0 并发包的探讨-0 section

首先,必须明确的是,Java的并发包是针对线程的,那么就不得不先说明一下什么是线程:

线程(thread),有时也被被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源,另外进程之间存在父子关系,但是线程只能共享所在进程的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程5种基本状态:
    1.新建 2.就绪 3.运行 4.阻塞 5.死亡
  线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。

-------------------------------------------------------
在多线程的情况下,有可能产生各种并发的情况,比如一个线程需要等待另外一个线程完成后再执行,一个线程在读取一个变量的时候另一个在写操作(产生数据不一致的情况),A线程在等待B线程,而B线程又在等待A线程,产生死锁现象。所以在原有基本Thread的基础上在Java 5.0+版本上加入了一个并发包,用来处理线程并发所需要的东西和处理对应问题的工具,这个包是一个大学教授写的-Doug Lea,他不仅讲课,而且研究,而且出书,它写了这个并发包,既简单又好用,所以在制定java新规范的时候,把这个包加进来了。所在的包名是:java.util.concurrent
-------------------------------------------------------
本文的系列文章将根据此包中不同类的作用和应用场景分类,并试图清晰的讲述其基本原理和用法,也会结合有些“原始”的办法,如wait,notify等等来讲述一些原理性东西。
希望我们都把并发包和线程的东西都吃透,因为这是一个很好的基础,很多框架,应用服务器,MQ等等的东西都会用到这些东西,或者你自己写程序的时候会经常用到的这类的东西,是一种”基本功“。本文是一个开唱白,1-N节的文章会陆续跟进,今天下午计划有二-三篇跟进,请注意查收!

你可能感兴趣的:(java,多线程,thread,应用服务器,框架)