Java多线程
文章平均质量分 95
简单介绍Java多线程的相关知识
helloworld_kb
这个作者很懒,什么都没留下…
展开
-
java并发容器(待补充)
1.java常见的并发容器ConcurrentHashMap:线程安全的 HashMap CopyOnWriteArrayList:线程安全的 List,在读多写少的场合性能非常好,远远好于 Vector. ConcurrentLinkedQueue:高效的并发队列,使用链表实现。可以看做一个线程安全的 LinkedList,这是一个非阻塞队列。 BlockingQueue:这是一个接口,JDK 内部通过链表、数组等方式实现了这个接口。表示阻塞队列,非常适合用于作为数据共享的通道。 Co...原创 2021-01-07 20:25:32 · 88 阅读 · 0 评论 -
Java原子类
1.为什么需要原子类当程序更新一个变量时,如果是多线程同时更新这个变量,可能得到的结果与期望值不同。比如:有一个变量i,A线程执行i+1,B线程也执行i+1,经过两个线程的操作后,变量i的值可能不是期望的3,而是2。这是因为,可能在A线程和B线程执行的时候拿到的i的值都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问题,synchronized能保证多线程不会同时更新变量i.从java1.5开始,jdk提供了java.util.concurrent.atomic包原创 2021-01-06 21:11:51 · 137 阅读 · 1 评论 -
多线程ThreadLocal
1.什么ThreadLocal关键字ThreadLocal类是用来提供线程内部的局部变量.这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量能相对于独立其他线程内的变量.ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文.总结:线程并发:在多线程并发的场景下 传递数据:我们可以通过ThreadLocal在同一线程,不同组件中传递公共变量 线程隔离:每个线程的变量都是独立的,不会互相影响2.基本使用简单看一个案例原创 2021-01-05 20:05:04 · 466 阅读 · 0 评论 -
队列同步器AQS
1.AQS简单介绍AQS 的全称为(AbstractQueuedSynchronizer),是在 java.util.concurrent.locks 包下面的一个抽象类。它是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量便是同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作,以期望它能够成为实现大部分同步需求的基础.使用 AQS 能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的 ReentrantLock,Semaphore,其他的诸如 ReentrantRead原创 2021-01-04 20:56:21 · 175 阅读 · 1 评论 -
java线程池
1.什么是java线程池在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这就是"池化资源"技术产生的原因。线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开转载 2021-01-03 21:11:09 · 103 阅读 · 0 评论 -
java的锁机制
1.什么是死锁线程死锁描述的是这样一种情况:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。public class DeadLockDemo { private static Object resource1 = new Object();//资源 1 private static Object resource2 = new Object();//资源 2 public static void main(原创 2021-01-02 22:21:33 · 384 阅读 · 0 评论 -
java多线程基础
1.进程与线程1.1什么是进程进程是程序的一次动态执行过程,它需要经历代码加载、代码执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。多进程操作系统能同时运行多个进程(程序),由于CPU具有分时机制,所以每个进程都能循环获得自己的CPU时间片。由于CPU执行速度非常快,所以使得所有程序都好像是“同时”执行一样。1.2什么是线程多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位,线程是在进程的基础上进行的进一原创 2021-01-02 17:10:13 · 196 阅读 · 2 评论