java.lang.Thread.State描述了线程的六个状态:
NEW:A thread that has not yet started is in this state.
RUNNABLE:A thread executing in the Java virtual machine is in this state.
BLOCKED:A thread that is blocked waiting for a monitor lock is in this state.
WAITING:A thread that is waiting indefinitely for another thread to perform a particular action is in this state.
TIMED_WAITING:A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.
TERMINATED:A thread that has exited is in this state.
使用vm监视器对sleep、wait、block监视的状态分别为休眠、等待、监视
sleep语义:我完成了我的时间片,在我休眠的这段时间不要给我分配时间片了
wait语义:我完成了我的时间片,在其他人唤醒我之间不要给我分配时间片了
ReentrantLock的同步器实现中,使用Unsafe.park()和Unsafe.unpark()阻塞和唤醒线程
同wait/notify在实现上有什么区别?
参考:
http://www.logicaltrinkets.com/wordpress/?p=153
http://www.docjar.com/docs/api/sun/misc/Unsafe.html#unpark(Object)
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.State.html
分享到:
相关推荐
这些功能的实现涉及到了Java的类、对象、接口、异常处理、多线程以及网络编程等基础知识。例如,可能会使用到Servlet和JSP进行服务器端交互,使用JavaMail API实现邮件提醒功能,或者利用JSON进行数据交换。 数据库...
是一款使用Java编程语言开发的应用程序,它不仅提供了基础的文本编辑功能,如新建、打开、保存、复制、粘贴、查找、替换等,还引入了一个创新特性——集成音乐播放功能,使用户在记录生活、工作点滴的同时可以享受...
文档中可能包含了在多线程环境下遇到的挑战和解决策略。 最后,Java的输入输出(I/O)系统、网络编程、反射、注解以及最近的Java新特性(如Lambda表达式、Stream API等)也是学习的重点。这些内容可能在文档中有所...
Java是一种广泛使用的编程语言,其具备跨平台、面向对象、安全性高、多线程等特点。SSM框架是Spring、SpringMVC和MyBatis的简称,它们都是Java领域的常用框架。其中Spring负责业务对象管理,SpringMVC负责Web层的...
Java是一种多线程、面向对象的编程语言,具有平台独立性,因此,理解JVM(Java虚拟机)的工作原理,以及如何优化代码运行效率,是每个Java程序员必备的知识。书中的章节可能包括类与对象、封装、继承、多态等OOP概念...
1. **Java基础**:Java是系统的编程语言基础,包括面向对象编程、异常处理、集合框架(如List、Set、Map)、多线程、IO流等。理解并熟练运用这些基础知识是开发的前提。 2. **SpringBoot框架**:SpringBoot简化了...
同时,Java的多线程和数据库连接能力使得日记本可以同时为多个用户提供服务,并持久化存储用户的日记数据。 由于Java具备跨平台的特性,Java Web 日记本能够在不同的操作系统上运行。此外,Java的稳定性和安全性也...
4. **线程安全**:JNI代码应当考虑线程安全问题,尤其是在多线程环境中调用本地方法时。 #### Java和C之间互相传递字符串 1. **字符编码**:在JNI中传递字符串时要注意字符编码问题,默认情况下,Java使用UTF-16...
【简易记事本】是一款基于Java编程语言开发的小程序,主要功能是提供一个简单、便捷的文本编辑环境,用户可以在此记录文字信息,保存和管理日常的点滴。这款记事本程序虽然简单,但涵盖了Java编程中的核心概念和技术...
安卓java读取网页源码 :fuel_pump:说明 好记性不如烂笔头,变秃才能变强。 该仓库作为我的收集导航页面,文章来源于自己博客或者互联网,记录了我在开发过程的点滴,希望这些...Java多线程 JVM/NIO/...等等 设计模
Java作为当今流行的编程语言之一,以其跨平台、面向对象、安全性高、多线程等特性,在开发博客系统中扮演了重要角色。Java的应用范围广泛,包括企业级应用、大型系统后端开发等,因其良好的社区支持和成熟的生态系统...
CalendarPad的开发基于Java,这意味着它利用了Java的类库、异常处理、多线程以及丰富的API等功能,确保了程序的稳定性和兼容性。 2. **Swing或JavaFX GUI框架** 为了构建用户界面,开发者可能使用了Java的Swing或...
同时,为了优化游戏体验,可能还运用了多线程技术,以并发处理多个玩家的请求。 在图形渲染方面,虽然Java本身并不擅长3D图形处理,但可以通过Java 3D库或者第三方库如LWJGL(Lightweight Java Game Library)来...
Java是一种广泛使用的面向对象的高级编程语言,拥有跨平台、多线程和安全性高等特点。使用Java进行Android开发,开发者可以利用Android SDK提供的丰富API编写功能强大的移动应用。对于初学者来说,掌握Java基础知识...
作为一款Android应用,它充分利用了Android系统的特性,如通知栏提醒、多线程处理、SQLite数据库存储等,来实现用户友好且高效的数据管理。通过集成Plog API,用户可以轻松地上传、查看和管理他们的记录,无论是文字...
1. **Java编程基础**:包括类、对象、接口、异常处理、IO流、多线程等,这些都是构建应用程序的基础。 2. **Android开发**:如果journalApp是Android应用,那么会涉及到Android SDK,Activity管理,Intent通信,布局...
6. **多线程**:线程的创建和管理,同步机制(如synchronized关键字,Lock接口),线程池的使用。 7. **反射机制**:如何在运行时动态地获取类的信息并调用方法。 8. **泛型**:提高代码的类型安全性和重用性。 9...
【描述】:“DailyMomentApp”是一个用Java语言编写的日常记录应用,旨在帮助用户捕捉生活中的点滴时刻,记录日常感想,提供便利的日程管理和提醒功能。这个应用程序可能包含了前端用户界面、后端服务器逻辑以及...
【手机QQ空间说说】是腾讯公司为QQ用户推出的一款社交功能,允许用户在移动设备上分享生活点滴、心情感悟,与其他用户互动。这个压缩包文件"手机QQ空间说说.zip"显然包含了与实现这一功能相关的代码资源。下面将详细...