![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java&线程
文章平均质量分 60
zhangxiao123qqq
软工小生,记录点滴
展开
-
面试题——生产者消费者实现
生产消费者模型,大家都比较熟悉。面试bat等大厂就遇到了两次让手动实现,这里写上我的理解与实现。实现步骤:定义共有内容。List,容器本身,也是锁的对象。MAX_NUM,代表容器最大容量,标识容器是否已满编写线程,编写producer与consumer的方法(本文讲方法单独取出。)启动线程。package com.真题;import java.util.ArrayList;import java.util.LinkedList;public class 生产者消费者 {原创 2021-04-20 17:34:21 · 9696 阅读 · 0 评论 -
深入理解JVM第13章——线程安全与锁优化
JVM线程安全与锁优化java语言中的线程安全等级不可变: final修饰的基本数据类型。即为不可变。绝对线程安全:不管运行时环境如何,嗲用着都不需要任何额外同步措施。一般都达不到。相对线程安全:即为通常意义上的线程安全。对象单次的操作是线程安全的。比如:hashtable,vector等。线程兼容:通常意义上的线程不安全。本身不安全,可以通过在调用段使用同步手段保证。比如:hashmap,arraylist等。线程对立:无论如何都不能并发使用。java中一般不存在。线程安全的实现方法1原创 2021-01-31 17:36:07 · 243 阅读 · 0 评论 -
线程交替输出0-100
线程交替输出,那么肯定是要利用线程之间的同步协调。离不开Object对象中的wait()与Notify()方法。思路:创建两个线程A,B,一个全局变量i记数,一个全局变量obj协调两个线程。A输出一个数字,i++,obj.wait(),等待B执行。B输出一个数字,i++,叫醒A(obj.notify()),再obj.wait()。A输出一个数字,i++,叫醒B(obj.notify()),再obj.wait()。… 重复步骤34 直到 i == 100。思路逻辑大家应该都可以理解,需要注意原创 2021-01-19 16:26:17 · 373 阅读 · 0 评论