java核心技术
qq_15140841
结果比开始重要,过程比结果重要。
展开
-
线程管理1,2
线程管理(一)线程的创建和运行 在这个指南中,我们将学习如何在Java程序中创建和运行线程。与每个Java语言中的元素一样,线程是对象。在Java中,我们有2个方式创建线程: 通过直接继承thread类,然后覆盖run()方法。 构建一个实现Runnable接口的类, 然后创建一个thread类对象并传递Runnable对象作为构造参数 在这个指南中,我们将使用第二种方法来制作一个简单的程序...原创 2019-07-26 22:30:41 · 184 阅读 · 0 评论 -
JAVA8 十大新特性详解
Lambda表达式和函数式接口 Lambda表达式(也称为闭包)是Java 8中最大和最令人期待的语言改变。它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理:函数式开发者非常熟悉这些概念。很多JVM平台上的语言(Groovy、Scala等)从诞生之日就支持Lambda表达式,但是Java开发者没有选择,只能使用匿名内部类代替Lambda表达式。 Lambda的设计耗费了很多时...转载 2018-08-06 11:02:14 · 130 阅读 · 0 评论 -
同步器-CountDownLatch
一个倒计时门栓 ( CountDownLatch ) 让一个线程集等待直到计数变为 0。 倒计时门栓是一次性的。 一旦计数为 0 ,就不能再重用了。一个有用的特例是计数值为 1 的门栓。 实现一个只能通过一次的门 。 线程在门外等候直到另一个线程将计数器值置为0.举例来讲, 假定一个线程集需要一些初始的数据来完成工作 。 工作器线程被启动并在门外等候。 另一个线程准备数据 。 当数据准备好的时候 ...原创 2018-05-19 13:56:42 · 129 阅读 · 0 评论 -
同步器-Semaphore
信号量(Semaphore)概念上讲, 一个信号量管理许多的许可证 ( permit ) 。 为了通过信号量 , 线程通过调用acquire 请求许可 。 其实没有实际的许可对象 , 信号量仅维护一个计数 。 许可的数目是固定的, 由此限制了通过的线程数量 。 其他线程可以通过调用 release释放许可。 而且 , 许可不是二必须由获取它的线程释放。 事实上 , 任何线程都可以释放任意数目的许可...原创 2018-05-19 13:30:57 · 146 阅读 · 0 评论 -
同步器-CyclicBarrier
java.util.concurrent 包包含了几个可以帮助我们管理线程间相互合作的集合类, 这些机制具有为线程之间的共用集结点模式 ( common rendezvous patterns ) 提供的 “ 预置功能 ”( canned functionality )CyclicBarrier允许线程集等待直至其中预定数目的线程到达一个公共障栅 ( barrier ), 然后可以选择执行一个处理...原创 2018-05-19 13:14:12 · 233 阅读 · 0 评论 -
java多线程:线程状态
线程可以有如下 6 种状态 :• New ( 新创建 )• Runnable( 可运行 )• Blocked( 被阻塞 )• Waiting( 等待 )• Timed waiting( 计时等待 )• Terminated( 被终止 )。要确定一个线程的当前状态 , 可调用 getState 方法。新创建线程当用 new 操作符创建一个新线程时, 如newThread ( r ), 该线程还没有开...翻译 2018-05-01 12:04:26 · 112 阅读 · 0 评论 -
java :中断线程
当线程的 run 方法执行方法体中最后一条语句后 , 并经由执行 return 语句返冋时 , 或者出现了在方法中没有捕获的异常时, 线程将终止 。 在 Java 的早期版本中 , 还有一个 stop 方法 , 其他线程可以调用它终止线程。 但是 , 这个方法现在已经被弃用了 。没有可以强制线程终止的方法。 然而 , interrupt 方法可以用来请求终止线程 。当对一个线程调用 interru...翻译 2018-05-17 16:17:28 · 179 阅读 · 0 评论 -
并发:线程初识
一个程序同时执行多个任务。 通常,每一个任务称为一个线程 ( thread ) , 它是线程控制的简称。 可以同时运行一个以上线程的程序称为多线程程序 ( multithreaded ) 。那么, 多进程与多线程有哪些区别呢?本质的区别在于每个进程拥有自己的一整套变量 , 而线程则共享数据 。 这听起来似乎有些风险 , 的确也是这样 , 在本章稍后将可以看到这个问题。 然而 , 共享变量使线程之...翻译 2018-05-17 16:14:43 · 110 阅读 · 0 评论 -
java泛型:泛型代码和虚拟机
虚拟机没有泛型类型对象 — 所有对象都属于普通类 。 在泛型实现的早期版本中 ,甚至能够将使用泛型的程序编译为在 1.0 虚拟机上运行的类文件 ! 这个向后兼容性在 Java 泛型开发的后期被放弃了。 1 类型擦除无论何时定义一个泛型类型 , 都自动提供了一个相应的原始类型 ( raw type ) 。 原始类型的名字就是删去类型参数后的泛型类型名。 擦除 ( erased )类型变 M , 并替...翻译 2018-06-17 18:25:55 · 443 阅读 · 0 评论 -
线程管理5,6,7
线程管理(五)线程的睡眠和恢复 有时, 你会感兴趣在一段确定的时间内中断执行线程。例如, 程序的一个线程每分钟检查反应器状态。其余时间,线程什么也不做。在这段时间,线程不使用任何计算机资源。过了这段时间,当JVM选择它时,线程会准备好继续执行。为达此目的,你可以使用Thread类的 sleep() 方法 。此方法接收一个整数作为参数,表示线程暂停运行的毫秒数。 在调用sleep() 方法后,当时...原创 2019-07-27 20:04:01 · 126 阅读 · 0 评论