![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
小王没有BUG
对Java以及网络编程感兴趣,专注技术学习与分享,也欢迎加我微信交流(微信号voidCC7929)
展开
-
volatile关键字解析
关于解决共享变量的可见性的手段,除了使用笨重的锁以外,Java还提供了一种弱形式的同步--------volatile关键字。volatile作用: 确保对一个变量的修改对其他线程马上可见。当我们使用这个关键字修饰一个变量的时候,线程在写入变量的时候不会把这个变量的值缓存在寄存器或者其他地方,会直接把值写回主内存中(什么是主内存看这里)。其他线程在读取这个变量的值也是一样,每次都是直接从...原创 2019-03-27 08:43:27 · 115 阅读 · 0 评论 -
锁, Java的锁总结
概述:1.乐观锁与悲观锁 乐观锁和悲观锁是数据库中引入的名词。 悲观锁是值对数据被外界的修改是持一种悲观的态度的,总是认为数据很容易就被其他线程修改了,因此在数据处理前都会先对数据加锁,加一个排他锁,处理完后再释放锁。供其他线程抢占。 乐观锁是相对悲观锁而言的,它总是认为数据不会被外界修改,不容易发生冲突和不需要抢占锁,因此访问数据前不需要给数据加锁,而是在进行数据提交的时候...原创 2019-03-27 10:32:30 · 179 阅读 · 0 评论 -
Synchronzied关键字解析
摘要 在Java程序涉及多线程的同步问题的时候,往往需要给线程同步安全的功能加锁,可能是需要同步一个方法,也可能只是一段代码。synchronzied关键字介绍: 其中synchronized关键字就是Java内部实现的一个锁机制,通过给需要添加锁机制的方法或代码块加上synchronzied关键字,这样就能保证同一时间内只允许一个线程执行这段代码。 synchronize...原创 2019-03-27 08:12:18 · 315 阅读 · 0 评论 -
JUC并发包总结
ThreadLocal思想:ThreadLocal通过让每一个线程复制一份变量,使得每个线程对变量进行操作时实际上是操作自己本地内存里面的副本,从而避免了对共享变量进行同步。作用:每一个ThreadLocal能够放一个线程级别的变量,可是它本身能够被多个线程共享使用,并且又能够达到线程安全的目的,且绝对线程安全。使用:public class ThreadLocalTest {...原创 2019-04-16 21:05:50 · 449 阅读 · 0 评论 -
Java多线程基础知识
守护线程与用户线程:Java中线程分为两类:守护线程和用户线程。用户线程:JVM启动是会调用main函数,main函数所在线程就是用户线程,还有就是我们自己手动开启的线程,Thread等守护线程:JVM内部会启动好多守护线程,像垃圾回收线程等。区别: 1、最后一个非守护线程结束时,JVM会正常退出,不管是否有守护线程。(只要有一个用户线程未结束,JVM都不会停止)如...原创 2019-04-16 21:06:32 · 116 阅读 · 0 评论 -
Java线程池
线程池:作用:1、利用线程池管理并复用线程、控制最大并发数等。(减少频繁创建和销毁线程带来的性能开销)2、实现任务线程队列缓存策略和拒绝机制(拒绝机制用于拒绝一次性过多的线程,导致系统资源不足,引起其他服务也崩溃)3、实现某些与时间相关的功能,如定时执行、周期执行(有一些时间控制的线程池)4、隔离线程环境。(为不同服务开启独立配置的线程池,可以防止服务速度不同带来的影响)优...原创 2019-04-16 21:07:12 · 126 阅读 · 0 评论