Java多线程
Java多线程相关学习资料
流云细水
这个作者很懒,什么都没留下…
展开
-
【Java多线程】$1 Thread
1. 线程与进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是...原创 2019-12-25 00:53:11 · 161 阅读 · 0 评论 -
【Java多线程】$2 对象及变量的并发访问之 synchroized关键字
1. synchroized 作用在方法上 synchroized public void method(){ } 以上代码将作用于对象,对象内多个方法将竞争同一个对象锁 2. synchroized 作用代码块 被同步块包裹的代码块将同步执行,共同竞争对象锁 public void method(){ // 此处代码将异步执行 synchroized(this) { // 此...原创 2019-12-26 00:00:32 · 171 阅读 · 0 评论 -
【Java多线程】$2 使变量在多个线程间可见之 volatile关键字
未完待续原创 2020-01-07 22:18:55 · 255 阅读 · 0 评论 -
【Java多线程】$3 线程间通讯 (wait & notify & sleep & join)
wait() 作用:让当前正在执行的代码进行等待。 wait方法时一个 Object方法,在调用前,线程必须获取到改对象的对象锁,即只能在同步方法或同步块中调用wait方法。在执行完成后当前线程释放锁。 若在调用时未持有适当的锁,则会抛出IllegaMonitorStateException异常。 notify() 作用用于唤醒一个处于等待状态的线程 wait()方法被执行后锁自...原创 2020-02-08 13:06:59 · 142 阅读 · 0 评论 -
【Java多线程】$3 ThreadLocal
ThreadLocal 作用 让每一个线程都有绑定自己的值。 可重写 initialValue() 方法来默认一个初始化值 InheritableThreadLocal 作用 让子线程可以从父线程中取值 ThreadLocal & Thread & ThreadLocalMap Threadlocal 是为了使各个线程(Thread)都有一份自己独立的 变量/对象 , 而不是 用...原创 2020-02-08 14:04:11 · 141 阅读 · 0 评论 -
【Java多线程】$4 Lock
Lock 1. lock() & unlock() 线程加锁与释放锁 2. 公平锁和不公平锁 公平锁表示线程获取锁的顺序是按照哦线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序。而非公平锁就是一种获取锁的抢占机制,是随机获得锁的。 3. 读写锁 ReentrantReadWriteLock 类ReentrantLock是一个完全排他效果锁,即同时刻只有一个线程在执行Renntran...原创 2020-02-08 21:22:55 · 230 阅读 · 0 评论 -
【Java多线程】$5 定时器 Timer
Timer定时器的使用 主要使用对象有 Timer 和 TimerTask, Timer schedule(…) scheduleAtFixedRate(…) cancel() schedule() 相比 scheduleAtFixedRate(), 它不具备 追赶特性 1 cancel() 方法,将会停止执行计划,将 任务队列2 中全部的任务进行清空。 TimerTask 该类实现了Ru...原创 2020-02-09 15:07:34 · 191 阅读 · 0 评论 -
【Java多线程】$6 单例模式与多线程
饿汉模式 首先创建一个对象,后由使用者拿取 public class MyObject { private static MyObject instance = new MyObject(); private MyObject(){} public static MyObject getInstance() { return instance; ...原创 2020-02-09 15:56:24 · 199 阅读 · 0 评论 -
【Java多线程】$7 拾遗增补之线程的状态
线程的状态 NEW: 线程刚被创建时状态 RUNNABLE: 线程正在被执行时状态 start() BLOCKED: 线程阻塞状态(sleep, wait, join) WAITING: 无期限等待另一个线程来执行某一特定操作的线程处于这种状态 TIMED_WAITING: 等待另一个线程来执行取悦于指定等待时间的操作的线程,处于这种状态 TERMINATED 线程状态变换关系图 startw...原创 2020-02-09 17:18:18 · 128 阅读 · 0 评论 -
【Java多线程】$7 拾遗增补之SimpleDateFormat
SimpleDateFormat对象并非是线程安全的,如果多个线程同时使用一个SimpleDateFormat对象,将会出现格式化错误,所得到的结果并非正确结果。 解决问题的办法,就是在每个线程中单独创建一个 SimpleDateFormat对象。 ...原创 2020-02-09 17:49:46 · 137 阅读 · 0 评论