Java高级特性系列--多线程

多线程相关概念:

线程的5种状态:

1,新建状态(New):线程对象被创建之后,就进入了新建状态。Thread thread = new Thread();

2,  就绪状态(Runnable):可执行状态,线程对象被创建后,其他线程调用了该对象的start()方法,该线程就启动了。处于就绪状态,随时可能被CPU调度执行。

3,运行状态(Running):线程获取到CPU正在执行。线程只能从就绪状态转为运行状态,不能从其他状态进入运行状态。

4,阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃了CPU的使用权,暂时停止运行。阻塞分为三种情况:

  (a)等待阻塞:通过调用线程的wait()方法,让线程等待某项工作的完成。

  (b)同步阻塞:线程在获取

时间: 2024-10-27 00:45:54

Java高级特性系列--多线程的相关文章

Java高级特性系列--Concurrent

转载自 http://www.cnblogs.com/skywang12345/p/java_threads_category.html JUC:java.util.concurrent 一,JUC原子类 根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类. 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArr

Java高级特性 第7节 多线程

一.进程与线程的概念 1. 进程 进程是应用程序的执行实例,有独立的内存空间和系统资源. 如上图,标红色的是一个Office Word进程. 进程的特点: 动态性:进程是动态的创建和消亡: 并发性:操作系统利用时间片轮转或其他策略让多个应用程序交替执行: 独立性:所有的进程都是独立运行的,系统会分别为这些线程分配资源和实施调度 2.  线程 CPU调度和分派的基本单位,进程中执行运算的最小单位,可完成一个独立的顺序控制流程. 如上图迅雷可以创建多个下载任务(每个下载任务可看做是一个线程),多个下

Java高级特性 第6节 注解(初步认识)

转自https://www.cnblogs.com/xdp-gacl/p/3622275.html的博客 一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5之后才有的新特性 JDK1.5之后内部提供的三个注解 @Deprecated 意思是“废弃的,过时的

Java高级特性

1.HashMap与HashTable的区别: HashMap类是基于哈希表的 Map 接口的实现.它提供所有可选的映射操作,并允许使用 null 值和 null 键.但此类不保证映射的顺序,特别是它不保证该顺序恒久不变.Hashtable类实现一个哈希表,该哈希表将键映射到相应的值.任何非 null 对象都可以用作键或值.在Java集合框架中,有些类是线程同步安全的类,它们是Vector.Hashtable.Stack.enumeration.HashMap类是基于哈希表的 Map 接口的实现

Java 高级特性: Lambda 表达式

本文源代码上传到了码云,请点击 LambdaExpression 获取.Lambda 表达式是 java 8 的新特性,本文讲解了 lambda 表达式的所有知识.内容涉及到 lambda 表达式是什么, lambda 表达式用在何处,在 GUI 应用程序中使用 lambda 表达式,lambda 表达式语法,变量访问权限,目标类型,序列化,方法引用等.

java高级特性--注解,这也许是最简单易懂的文章了

博主在初学注解的时候看到网上的介绍大部分都是直接介绍用法或者功能,没有实际的应用场景,篇幅又很长导致学习的时候难以理解其意图,而且学完就忘QAQ.本篇文章中我将结合实际的应用场景尽可能由浅入深,平缓的介绍java注解. java注解是jdk1.5以后新出的特性,对于它的应用非常广泛,我们首先来看一下注解的应用,百度百科上这样说: 我们可以看到,注解的作用有三方面: 编写doc文档:这个就我们很常用的 @return 以及 @author,加了这些注解以后,就可以用jdk帮我们自动生成对应的API

Java高级特性——注解,这也许是最简单易懂的文章了

java注解是jdk1.5以后新出的特性,对于它的应用非常广泛,我们首先来看一下注解的应用,百度百科上这样说: 我们可以看到,注解的作用有三方面: 编写doc文档:这个就我们很常用的 @return 以及 @author,加了这些注解以后,就可以用jdk帮我们自动生成对应的API文档了 编译检查:这个也很常见 @Override,而且功能很强大,我将会在以后的文章中介绍 进行代码分析:这是本篇文章的重点.这个和编译检查一样也是一个强大的功能,但相比与编译检查由于其用到了反射,在性能上存在一些问题

Java高级特性—锁

1).synchronized 加同步格式: synchronized( 需要一个任意的对象(锁) ){ 代码块中放操作共享数据的代码. } synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性.    如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,    等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 1)获取锁的线程执行完了该代码块,然后线程释

Java高级特性—JVM

1).java监控工具使用 jconsole是一种集成了上面所有命令功能的可视化工具,可以分析jvm的内存使用情况和线程等信息 visualvm 提供了和jconsole的功能类似,提供了一大堆的插件. 插件中,Visual GC(可视化GC)还是比较好用的,可视化GC可以看到内存的具体使用情况. 2).Java虚拟机运行时数据区域划分 被分为五个区域:堆(Heap).栈(Stack).本地方法栈(Native Stack). 方法区(Method Area).程序计数器(Program Cou