多线程
_JZWen
学习,总能是你进步。
展开
-
多线程简陋笔记
多线程 什么是多线程 ?多线程的目的就是提高程序的效率 进程是线程的集合 线程是进程的一条执行路径创建线程的几种方式?继承Thread类 实现Runnable接口 使用匿名内部类 Callback然后一般在企业开发是使用线程池。 常用API (方法)获取子线程的id name 在run方法里面 这是要用线程对象去调用的 getId() getName()...原创 2018-08-08 22:20:23 · 224 阅读 · 0 评论 -
java写一个死锁
/** * @author JZWen * @date 2019年2月24日 *//** * @author JZWen * */public class DeathLock { /** * @param args */ public static void run() { MyThread mThread = new MyThread(true); n...原创 2019-02-24 15:47:58 · 582 阅读 · 0 评论 -
java信号量_Semaphore
他是一个线程同步结构,用于在线程之间通讯,就像加了一把锁一样,防止我们的信号消失(保护这块区域)。Semaphore是J.U.C包下的一个类。多个线程可以通过他进行共享资源。它内部维护了一个计数器(计数器表示同时访问的最大访线程数)。然后还有两个重要方法。acquire() ; 当我们进行访问资源时的时候我们会进行对那个计数器-1; (计数器必须要大于等于0)再去访问资源releas...原创 2019-03-16 13:45:04 · 233 阅读 · 0 评论 -
Synchronized底层实现 + Synchronized锁优化_大白话
Synchronized同步,被修饰的方法块,同步方法,每次都只让一个线程去执行。那么那么,他底层是怎么实现的呢?对于synchronized语句当Java源代码被javac编译成bytecode的时候,会在同步块的入口位置和退出位置分别插入monitorenter和monitorexit字节码指令。而synchronized方法则会被翻译成普通的方法调用和返回指令如:invokevirtua...原创 2019-03-21 17:19:49 · 241 阅读 · 0 评论 -
volatile关键字 + happens-before原则
volatile : 可见性、有序性。记住了,人家不保证原子性的。先说说volatile关键字被volatile关键字修饰的变量,再多线程中,一个线程修改他会立即被其他线程看到,可能这样你不太理解,首先我们看那一下java内存模型图吧。也就是说,我们看到了,当一个线程想要访问一个变量的时候,我们首先要去主内存读取变量,然后拿到自己的工作内存,然后做相应的处理,最后...原创 2019-03-21 15:58:36 · 1293 阅读 · 3 评论 -
JUC_大厂面试必问
J.U.C---------java.util.concurrent 包下的类。大家先来看一张图几片吧。首先juc分为tools:lock :collections:线程池:atomic :...原创 2019-03-26 16:37:35 · 5126 阅读 · 1 评论 -
Threadlocal能干啥
以前都只知道他保存了当前线程变量的一个副本,却不知道他到底能干啥,而且说这个保存了当前线程的副本也是很抽象的,怎么理解这玩意。下面老哥带你进入Threadlocal。Threadlocal能干啥?你可以吧Threadlocal想象成一个redis,Threallocal里面维护了一个叫做ThreadlocalMap的变量,使用key,value存储,重点来了。比如我们有多个线...原创 2019-03-29 10:39:58 · 327 阅读 · 0 评论