1 可重入锁 可重入锁,也叫递归锁。它有两层含义,第一,当一个线程在外层函数得到可重入锁后,能直接递归地调用该函数,第二,同一线程在外层函数获得可重入锁后,内层函数可以直接获取该锁对应其它代码的控制权。之前我们提到的synchronized和ReentrantLock都是可重入锁。 通过ReEnte ...
分类:
编程语言 时间:
2020-02-02 14:04:05
阅读次数:
68
java多线程 的 线程池,固定线程池和临时增加线程池
分类:
编程语言 时间:
2020-02-02 01:34:34
阅读次数:
76
1 import java.util.concurrent.TimeUnit; 2 3 /** 4 * 对写业务加锁 5 * 对读业务不加锁 6 * 脏读 7 */ 8 public class Account { 9 10 String name; 11 double balance; 12 13 ...
分类:
编程语言 时间:
2020-01-31 20:53:53
阅读次数:
104
1 import java.io.IOException; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 import java.util.concurrent.Ti ...
分类:
编程语言 时间:
2020-01-31 20:53:34
阅读次数:
1083
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.concurrent.TimeUnit; 4 5 /** 6 * 创建一个容器,一根线程往里放东西,一根线程判断是否符合条件 7 */ 8 public ...
分类:
编程语言 时间:
2020-01-31 20:46:36
阅读次数:
69
一、synchronized锁住的不是代码块,是对象。 1 /** 2 * synchronized 对某个对象加锁 3 */ 4 public class SynchronizedTest { 5 6 private int count = 10; 7 private Object o = new ...
分类:
编程语言 时间:
2020-01-31 20:37:58
阅读次数:
73
1、实现线程有哪几种方式 继承Thread类 实现Runnable接口,重写run()方法 实现Callable接口,重写call()方法 ,返回Future对象结果 线程池:ExecutorService 中submit(runnable/callable)返回一个Future,Future可用来 ...
分类:
编程语言 时间:
2020-01-31 19:13:41
阅读次数:
95
线程创建的方式 有两种 第一种是继承Thread类 重写run方法 (个人偏向这一种实际中这种用的较多) 例如 public class MyThead extends Thread { int j=20; public void run(){ for (int i = 0; i < 20; i++ ...
分类:
编程语言 时间:
2020-01-31 14:05:20
阅读次数:
62
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.concurrent.*; 4 import java.util.concurrent.Callable; 5 import java.util.con ...
分类:
编程语言 时间:
2020-01-31 00:36:34
阅读次数:
124
什么是分布式锁 在学习Java多线程编程的时候,锁是一个很重要也很基础的概念,锁可以看成是多线程情况下访问共享资源的一种线程同步机制。这是对于单进程应用而言的,即所有线程都在同一个JVM进程里的时候,使用Java语言提供的锁机制可以起到对共享资源进行同步的作用。如果分布式环境下多个不同线程需要对共享 ...
分类:
其他好文 时间:
2020-01-30 17:04:58
阅读次数:
57