多线程
Strong肖恩
这个作者很懒,什么都没留下…
展开
-
Java中的锁和原子类
可重入锁可重入锁,也叫做递归锁,指的是在同一线程内,外层函数获得锁之后,内层递归函数仍然可以获取到该锁。换一种说法:同一个线程再次进入同步代码时,可以使用自己已获取到的锁。主要作用是避免思索以及节省获取锁的时间。Synchronized 和 ReentrantLock都是可重入锁。public class SynchronizedTest { public static void ...原创 2020-03-28 15:55:35 · 509 阅读 · 0 评论 -
Callable和Future
Callable在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。不过,Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Callable用来执行任务,产生结果,而Future用...原创 2020-03-28 12:45:54 · 126 阅读 · 0 评论 -
线程池
并发队列队列:先进先出,后进后出。非阻塞队列ConcurrentLinkedQueue(并发包下的)阻塞队列(BlockingQueue)ArrayBlockingQueue (java.util.concurrent)DelayedWorkQueue in ScheduledThreadPoolExecutor (java.util.concurrent)Blocking...原创 2020-03-26 23:04:30 · 65 阅读 · 0 评论 -
线程安全
什么是线程安全?线程安全就是,当多个线程共享一个变量时,某个线程对该变量做修改的时候受到其他线程干扰从而导致线程安全问题。比如i = i + 1;System.out.println(i);假如i是个全局变量,当其他线程也对i进行操作的时候,就会导致i的值出现和预期不符的结果。如何解决线程安全使用内置锁(synchronized )或者外置锁(Lock)synchronized :...原创 2020-03-26 12:47:06 · 75 阅读 · 0 评论