首先,必须明确的是,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 TTS5.0 PDF----ORACLE编程
达内JAVA TTS5.0 PDF----Servlet
1.达内JAVA TTS5.0 PDF----JAVA面向对象 2.达内原版PDF
达内JAVA TTS5.0 PDF----HTML--CCS--JS
1.达内JAVA TTS5.0 PDF----JAVA语言基础 2.达内原版PDF
达内JAVA TTS5.0 PDF----JDBC和XML
1.达内JAVA TTS5.0 PDF----JAVA SE核心2 2.达内原版PDF
1.达内JAVA TTS5.0 PDF----JAVA SE核心1 2.达内原版PDF
Java5.0API(1-5).帮助手册....chm格式
ACCP5.0课程PPT----01 Java概述(分N份上传)
ibm-java2-x86_64-jre-5.0-13.1.x86_64.rpm
dotnet-sdk-5.0.202-win-x64.exe
ACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程PPTACCP5.0-S1-C#教程...
php现货交易系统5.0.rar--宋正河作品 php现货交易系统5.0.rar--宋正河作品 php现货交易系统5.0.rar--宋正河作品
dotnet SDK dotnet-sdk-5.0.400-linux-x64.tar.gz
六个版本的mysql-jdbc连接工具
赠送jar包:ffmpeg-5.0-1.5.7.jar; 赠送原API文档:ffmpeg-5.0-1.5.7-javadoc.jar; 赠送源代码:ffmpeg-5.0-1.5.7-sources.jar; 赠送Maven依赖信息文件:ffmpeg-5.0-1.5.7.pom; 包含翻译后的API文档:ffmpeg-5.0...
郑码输入法5.0单字版---XP自带的 还是官方的好 我喜欢
北大青鸟 ACCP5.0-- S2--深入.NET平台和C#编程(.NETOOP)-- 理论贯穿案例.rar 第一学年【第二学期】
TortoiseGit-LanguagePack-1.8.5.0-32bit-zh_CN.msi