Java多线程
文章平均质量分 67
Java多线程
AbtYee
编程嘛 编就完了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JMM笔记
JMM笔记Java内存模型JCP定义了一种Java内存模型,以前是在JVM规范中,后来独立出来成为JSR-133(Java内存模型和线程规范修订)内存模型:在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象Java内存模型主要关注JVM中把变量值存储到内存和从内存中取出变量值这样的底层细节对于Java内存模型,有些基本要求:所有变量(共享的)都存储在主内存中,每个线程都有自己的工作内存;工作内存中保存该线程使用到的变量的主内存副本拷贝线程对变量的所有操作(读原创 2022-01-25 23:54:49 · 213 阅读 · 0 评论 -
CopyOnWriteArrayList部分源码分析
CopyOnWriteArrayList部分源码分析为什么会保证线程安全原创 2022-01-19 12:52:47 · 312 阅读 · 0 评论 -
Java学习笔记-生产者消费者问题
Java学习笔记-生产者消费者问题synchronized我们可以使用synchronized来解决生产者消费者问题,比如当num为0时,使B线程等待,唤醒A线程让其加1,当num为1时使A线程等待,并唤醒B线程让其减1public class PCSyn{ public static void main(String[] args){ // 获取资源对象 Data data = new Data(); // 让其执行十次原创 2021-06-01 17:47:51 · 169 阅读 · 0 评论 -
Java-synchronized&lock
Java学习笔记-synchronized&lock举例:卖票行为,当我们不使用锁来进行卖票行为时,我们会发现得到得结果并不是我们想要得结果public class SellTicket { public static void main(String[] args) { Ticket ticket = new Ticket(); new Thread(()->{for(int i = 0; i < 40; i ++) ticket2.se原创 2021-06-01 08:42:30 · 214 阅读 · 0 评论 -
Java学习笔记-多线程实现方式
Java学习笔记-多线程实现方式(注意:线程开启不一定立即执行,由CPU调度执行)1、继承Thread类自定义线程类继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start()方法启动线程public class Test extends Thread{ @Override public void run(){ //重写run方法 for(int i = 0; i < 50; i ++){ Sy原创 2021-04-06 20:01:24 · 119 阅读 · 0 评论 -
Java学习笔记-锁
Java学习笔记-锁Lock(锁)从JDK5.0开始,Java提供了更强大的线程同步机制—通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当java.util.concurrent.locks.Lock接口是个控制多线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象ReenTrantLock(可重入锁)类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中原创 2021-04-18 11:41:05 · 214 阅读 · 0 评论 -
Java学习笔记-死锁
Java学习笔记-死锁多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有“两个以上对象的锁”时,就可能发生“死锁”的问题//死锁:多个线程互相占有着对方需要的资源,形成僵持public class DeadLock { public static void main(String[] args) { DriveCar u1 = new DriveCar(0,"李四");原创 2021-04-18 11:02:13 · 197 阅读 · 0 评论 -
Java学习笔记-线程
Java学习笔记-线程线程状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Omw1o6D-1618239043113)(C:\Users\10098\AppData\Roaming\Typora\typora-user-images\image-20210411202205303.png)]newThread t = new Thread()线程对象一旦创建就进入到了新生状态就绪状态当调用start()方法,线程立即进入就绪状态,但原创 2021-04-12 22:51:12 · 179 阅读 · 0 评论
分享