Java Thread

Java多线程Java多线程只有一种构造方式,即创建Thread对象。 实现线程的执行方法有两种方式: 1. 继承Thread,重写Thread的run()方法。 2. 实现Runnable 接口的run()方法。线程命名默认命名Java源码public Thread(Runnable target) { init(null, target, "Thr... …… 阅读全文

Java Thread synchronized

synchronized关键字提供了一种锁机制,能确保共享变量的互斥访问,防止数据不一致的问题出现。 synchronized其实是获取synchronized修饰的monitor锁。monitor锁包括monitor enter和monitor exit两个JVM指令。将java编译成汇编的时候就会显示地出现这个锁。使用synchronized可以修饰方法和代码块。 但是有一些注意点... …… 阅读全文

Java Thread 通信

单线程通信wait & notify wait()和notify()都是Object的方法。wait方法会使当前线程进入阻塞,知道有其它线程调用了notify()或notifyAll(),或者阻塞时间到了。 wait(),notify必须拥有该对象的monitor(This monitor),也就是wait方法只能在同步方法中使用,并且wait和notify的对象一致。否则会抛出... …… 阅读全文

JavaThreadGroup

所有的Thread都有ThreadGoup,同线程存在父子关系,ThreadGroup也存在父子关系。如图: 林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要:线程组ThreadGroup表示一组线程的集合,一旦一个线程归属到一个线程组之中后,就不能再更换其所在的线程组。那么为什么要使用线程组呢?个人认为有以下的好处:方便... …… 阅读全文

PreventDuplicated

package com.tal.multithread;import javafx.geometry.Pos;import java.io.File;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import ja... …… 阅读全文

Collections 族系详解 —— ImmutableCollections

ImmutableCollections即不可变即,最初出现在Google 的Guava 中,在jdk的Java9中被引入。JDK9,10中的ImmutableCollections只是一个存放不可变集合的一个容器,不是一个公共的API。先看ImmutableCollections的设计图ImmutableCollections真的只是一个集合,下面的Set0,Set1..List... …… 阅读全文

Map族系详解 —— Map

本文以Java10为背景,Java8到Java10只是增加了一些方法,总体结构没变。 转载请注明: TalBen在我们解释HashMap之前,先看看HashMap的结构: HashMap实现Map,继承AbstractMap。 先解释一下Map Interface。Map是一个interface,它为一个能 maps keys to values的对象提供了一个规范... …… 阅读全文

Map族系 —— AbstractMap

本文以Java10为背景,Java8到Java10只是增加了一些方法,总体结构没变。转载请注明:https://blog.csdn.net/ydonghao2/article/details/81077783TalBen这个class提供了Interface Map的一个最基本的实现。可以说在defeult和static方法能在interface 实现之前,为了减少要implemen... …… 阅读全文