随笔分类 -  多线程

摘要:java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。 一、简介 ReentrantLock常常对比着synchronized来分析 阅读全文
posted @ 2022-04-02 00:12 HZX↑ 阅读(79) 评论(0) 推荐(0) 编辑
摘要:CopyOnWriteArrayList CopyOnWriteArrayList适合于多线程场景下使用,其采用读写分离的思想,读操作不上锁,写操作上锁,且写操作效率较低。 CopyOnWriteArrayList基于fail-safe机制,每次修改都会在原先基础上复制一份,修改完毕后在进行替换。 阅读全文
posted @ 2022-04-01 00:06 HZX↑ 阅读(48) 评论(0) 推荐(0) 编辑
摘要:由于同一进程的多个线程共享同一块存储空间 , 在带来方便的同时,也带来了访问 冲突问题 , 为了保证数据在方法中被访问时的正确性 , 在访问时加入 锁机制synchronized , 当一个线程获得对象的排它锁 , 独占资源 , 其他线程必须等待 , 使用后释放锁即可 . 存在以下问题 : 一个线程 阅读全文
posted @ 2022-03-31 23:41 HZX↑ 阅读(45) 评论(0) 推荐(0) 编辑
摘要:守护线程 Daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. 代码示例: /** * @Description 测试守护线程,上帝保佑着你 * @Author hzx * @Date 2022-0 阅读全文
posted @ 2022-03-27 16:17 HZX↑ 阅读(52) 评论(0) 推荐(0) 编辑
摘要:线程优先级 Priority Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度 器按照优先级决定应该调度哪个线程来执行。 线程的优先级用数字表示,范围从1~10。 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thr 阅读全文
posted @ 2022-03-27 15:40 HZX↑ 阅读(115) 评论(0) 推荐(0) 编辑
摘要:观测线程状态 getState() Thread.State(查看JDK帮助文档) 线程状态。线程可以处于以下状态之一: [NEW] 尚未启动的线程处于此状态。 [RUNNABLE] 在Java虚拟机中执行的线程处于此状态。 [BLOCKED] 被阻塞等待监视器锁定的线程处于此状态。 [WAITIN 阅读全文
posted @ 2022-03-27 00:17 HZX↑ 阅读(149) 评论(0) 推荐(0) 编辑
摘要:线程强制执行 join() Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞 ; 可以想象成插队。 代码示例: /** * @Description 测试join方法 * @Author hzx * @Date 2022-03-26 */ public class TestJoin 阅读全文
posted @ 2022-03-26 23:52 HZX↑ 阅读(34) 评论(0) 推荐(0) 编辑
摘要:线程礼让 Thread.yield() 礼让线程,让当前正在执行的线程暂停,但不阻塞 ; 将线程从运行状态转为就绪状态 ; 让cpu重新调度,礼让不一定成功!看CPU心情。 代码示例: /** * @Description 测试线程礼让 * @Author hzx * @Date 2022-03-2 阅读全文
posted @ 2022-03-26 23:36 HZX↑ 阅读(30) 评论(0) 推荐(0) 编辑
摘要:线程休眠 Thread.sleep() sleep (时间) 指定当前线程阻塞的毫秒数; sleep存在异常InterruptedException; sleep时间达到后线程进入就绪状态; sleep可以模拟网络延时,倒计时等; 每一个对象都有一个锁,sleep不会释放锁。 代码示例: Threa 阅读全文
posted @ 2022-03-26 23:27 HZX↑ 阅读(155) 评论(0) 推荐(0) 编辑
摘要:一、线程状态 二、状态说明 阅读全文
posted @ 2022-03-26 23:17 HZX↑ 阅读(47) 评论(0) 推荐(0) 编辑
摘要:Thread静态代理模式理解 代码示例: /** * @Description 静态代理模式 * @Author hzx * @Date 2022-03-26 */ public class StaticProxy { public static void main(String[] args) { 阅读全文
posted @ 2022-03-26 23:04 HZX↑ 阅读(63) 评论(0) 推荐(0) 编辑
摘要:线程创建方式三:实现callable接口 代码示例: import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; import java.u 阅读全文
posted @ 2022-03-26 16:54 HZX↑ 阅读(41) 评论(0) 推荐(0) 编辑
摘要:【多线程】实现多线程同步下载图片 代码示例: import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; /** * @Descriptio 阅读全文
posted @ 2022-03-26 16:18 HZX↑ 阅读(53) 评论(0) 推荐(0) 编辑
摘要:案例:龟兔赛跑-Race 首先来个赛道距离,然后要离终点越来越近 判断比赛是否结束 打印出胜利者 龟兔晒跑开始 故事中是乌龟赢的,兔子需要睡觉,所有我们要模拟兔子睡觉 最后,乌龟赢得比赛 代码示例: /** * @Description 模拟龟兔赛跑 * @Author hzx * @Date 20 阅读全文
posted @ 2022-03-26 15:29 HZX↑ 阅读(88) 评论(0) 推荐(0) 编辑
摘要:多个线程同时操作一个对象,买火车票的例子 代码示例: /** * @Description 多个线程同时操作一个对象,买火车票的例子 * @Author hzx * @Date 2022-03-26 */ public class ThreadTest03 implements Runnable { 阅读全文
posted @ 2022-03-26 10:22 HZX↑ 阅读(141) 评论(0) 推荐(0) 编辑
摘要:创建线程方式二:实现Runnable接口 代码示例: /** * @Description 实现Runnable接口,重写run方法,执行线程需要丢入Runnable接口实现类,调用start方法 * @Author hzx * @Date 2022-03-26 */ public class Th 阅读全文
posted @ 2022-03-26 00:15 HZX↑ 阅读(79) 评论(0) 推荐(0) 编辑
摘要:创建线程方式一:继承Thread类 代码示例: /** * @Description 继承Thread类,重写run方法,调用start开启线程 * @Author hzx * @Date 2022-03-25 */ public class ThreadTest01 extends Thread 阅读全文
posted @ 2022-03-25 23:52 HZX↑ 阅读(56) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示