多线程
郝你个建强
小厂程序员,关注不迷路
展开
-
Java并发中的锁
公平锁/非公平锁这个是在ReentrankLock中实现的,synchronized没有,是用一个队列实现的,在公平锁好理解,就是先进这个队列的,也先出队列获得资源,而非公平锁的话,则是还没有进队列之前可以与队列中的线程竞争尝试获得锁,如果获取失败,则进队列,此时也是要乖乖等前面出队才行可重入锁如果一个线程获得过该锁,可以再次获得,主要是用途就是在递归方面,还有就是防止死锁,比如在一个同步...转载 2020-03-20 14:57:29 · 177 阅读 · 0 评论 -
Java并发——Synchronized和Volatile
Java并发同步机制一、Synchronized1》实现方式及原理它的使用方法有以下三种同步普通方法,锁当前实例对象(对这个类的对象操作需要获取锁) 同步静态方法,锁当前Class对象(这个类new的对象不会加锁,而调用类的静态方法需要获取锁) 同步代码块,锁代码块范围内的对象一个线程访问一个类的static synchronized方法时,其他线程可以访问该类的非stati...原创 2019-11-19 21:51:11 · 13725 阅读 · 0 评论 -
synchronized与Lock的区别联系
联系:synchronized和重入锁 ReentrantLock都有重入性:同一个线程进入一次则锁的计数器加一,当锁的计数器为0时才能释放锁区别:synchronized 是关键字,ReentrantLock是类 机制:synchronized操作mark word ,lock操作Unsafe类的park()方法。 synchronized 由编译器自动加锁释放锁,而重入锁需要用户...原创 2019-11-04 15:37:58 · 97738 阅读 · 0 评论 -
面试必问——线程与进程的区别
总结了其他文章,给自己提供一个方便的复习途径进程:进程是程序的一次执行过程,是程序在执行过程中的分配和管理资源的基本单位,每个进程都有自己的地址空间,线程至少有 5 种状态:初始态、执行态、等待态、就绪态、终止态。线程:线程是CPU调度和分派的基本单位,它可以和同一进程下的其他线程共享全部资源联系:线程是进程中的一部分,一个进程可以有多个线程,但线程只能存在于一个进程中。...原创 2019-10-24 21:34:34 · 393 阅读 · 0 评论 -
多线程——Semaphore
一、Semaphore的作用Semaphore是控制线程并发数量的,可以通过Semaphore来控制线程的执行顺序与逻辑简单介绍一下怎么使用//参数为 1 代表 s1 有 1块钱 ,就和超市使用购物车一样,要插入一元硬币才能使用//acquire()这句话就代表你把这一块钱租购物车,release()这句话是相反的,是把一块钱拿回来的Semaphore s1 = new Se...原创 2019-09-24 21:48:53 · 11154 阅读 · 1 评论 -
多线程中需要理解的名词
同步异步同步和异步通常用来形容一次方法的调用,同步方法一旦调用,调用者必须等到方法返回后才能继续向下执行,异步调用方法会立刻返回,继续执行接下来的操作,而异步方法通常是开另一个线程去执行这个方法。临界区临界区表示公共资源,可以被多个线程使用,但每次只能由一个线程使用,其他线程等待。阻塞和非阻塞阻塞:一个线程占用了临界资源,那么其他所有需要这个资源的线程就必须在这个临界区中等待,等待的线程...原创 2019-08-13 21:51:41 · 157 阅读 · 0 评论