随笔分类 -  Java.线程/线程池

摘要:【实验目的】 从SimpleDateFormat着手来探讨怎样的代码会导致线程不安全。 【代码】 用于将java.util.Date变成时间字符串的DateUtil类: package unsafesdf2; import java.text.SimpleDateFormat; import jav 阅读全文
posted @ 2022-08-23 04:12 逆火狂飙 阅读(59) 评论(0) 推荐(0) 编辑
摘要:【代码】 package unsafesdf; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Collections; import java.util.HashSet; import j 阅读全文
posted @ 2022-08-22 20:23 逆火狂飙 阅读(56) 评论(0) 推荐(0) 编辑
摘要:【实验目的】 验证i++方式生成序列号在多线程环境下的不确定性。 【实验类】 SnGenerator类,用于i++方式生成序列号 package com.hy.lab.nosynchonized; public class SnGenerator { int i=0; // 此函数如不加synchr 阅读全文
posted @ 2022-08-22 16:10 逆火狂飙 阅读(186) 评论(0) 推荐(0) 编辑
摘要:【门面类】 package com.hy.lab.caller; import javax.annotation.Resource; /** * 使用线程非阻塞调用外界接口的门面模式 * 优势:非阻塞、不因外界系统不可用而出异常,代码简单 */ public class Facade { @Reso 阅读全文
posted @ 2022-07-20 20:25 逆火狂飙 阅读(33) 评论(0) 推荐(0) 编辑
摘要:前作: https://www.cnblogs.com/heyang78/p/16477819.html 【代码下载地址】 https://files.cnblogs.com/files/heyang78/brandnewcpmgrt_20220717.rar?t=1658015436 【主要改进点 阅读全文
posted @ 2022-07-17 08:00 逆火狂飙 阅读(35) 评论(0) 推荐(0) 编辑
摘要:【代码】 package com.hy.lab.blkq; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; public class Test { public st 阅读全文
posted @ 2022-07-17 07:34 逆火狂飙 阅读(79) 评论(0) 推荐(0) 编辑
摘要:【代码下载】 https://files.cnblogs.com/files/heyang78/real_comsumerproducer20220714.rar?t=1657804074 【书写初衷】 甚多教程写消费者生产者模式,都是while(true)无限循环,没有一个退出机制,并不符合实际情 阅读全文
posted @ 2022-07-14 20:01 逆火狂飙 阅读(68) 评论(1) 推荐(0) 编辑
摘要:【代码下载地址】 https://files.cnblogs.com/files/heyang78/newcpmgrt_20220714ev.rar?t=1657805048 【前作】 https://www.cnblogs.com/heyang78/p/16410831.html 【图解】 【开发 阅读全文
posted @ 2022-07-14 15:20 逆火狂飙 阅读(38) 评论(2) 推荐(0) 编辑
摘要:在近期从事的数据库表迁移脱敏工作中,我逐渐归纳出两种迁移方式: 一.BlockMigrater:这种模式是一行行读取ResultSet的内容,凑足一万行后向目标库提交,提交完毕后再继续读取,再提交,直到处理完所有数据; 二.UnblockMigrater:这种模式读取时还是一行行读取ResultSe 阅读全文
posted @ 2022-07-11 20:46 逆火狂飙 阅读(114) 评论(1) 推荐(0) 编辑
摘要:本例CyclicBarrier作用:线程全部进入等待后,启动一个函数。 【代码】 package com.hy.lab.cyclicbarrier; import java.util.concurrent.CyclicBarrier; /** * 借用杜琪峰《黑社会之龙城岁月》之人物关系诠释Cycl 阅读全文
posted @ 2022-07-08 23:03 逆火狂飙 阅读(35) 评论(0) 推荐(0) 编辑
摘要:迁移脱敏程序的核心之一--迁移部分。 阅读全文
posted @ 2022-06-25 10:07 逆火狂飙 阅读(60) 评论(2) 推荐(0) 编辑
摘要:实现类: package com.hy.lab.future; import java.util.Random; import java.util.concurrent.Callable; public class Counter implements Callable<Integer> { @Ov 阅读全文
posted @ 2022-06-18 22:16 逆火狂飙 阅读(105) 评论(0) 推荐(0) 编辑
摘要:【前言】 这是实际工作中某任务的简化版,实际任务是将A库a表的数据迁移到B库b表,需要启动多线程进行迁移,全部迁移完毕后更改某表某记录的状态和数量字段。 例程进行了简化处理以方便理解。 【实现】 利用固定线程池限流,利用CoutDownLatch来通知计数线程进行统计。 【代码】 数据库实用类: p 阅读全文
posted @ 2022-06-09 14:41 逆火狂飙 阅读(292) 评论(0) 推荐(0) 编辑
摘要:【需求】 设计一循环线程,分批并行处理emp5202中的数据,要求并行数可以配置。 这是为一个实际工程制作的概念设计,两者流程一致,只是处理数据量和粒度不同。 【实现】 采用无尽循环LoopThread实现循环。 采用Executors.newFixedThreadPool(N)来进行并行处理。 【 阅读全文
posted @ 2022-05-20 07:02 逆火狂飙 阅读(350) 评论(0) 推荐(0) 编辑
摘要:数据库连接资源是有限的,当一次性放出大量线程,而每个线程都需要获得数据库连接资源时,争取不到资源的线程必会抛出异常,如以下程序: package com.hy.lab.gotminusone; import com.zaxxer.hikari.HikariDataSource; import org 阅读全文
posted @ 2022-05-06 21:42 逆火狂飙 阅读(311) 评论(0) 推荐(0) 编辑
摘要:刚才在 https://news.cnblogs.com/n/703437/ 上看到有人提到有趣的“睡眠排序”,忽然想到CountDownLatch正好可以用于实现一个。代码如下: package ufo.sleepsort; import java.util.ArrayList; import j 阅读全文
posted @ 2021-10-07 17:08 逆火狂飙 阅读(74) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch基于线程计数器来实现并发访问控制,主要用于主线程等待其它子线程都执行完毕后再执行某某操作。 其使用步骤: 1.主线程定义CountDownLatch,参数等于要执行的子线程个数; 2.子线程运行完后掉latch.countDown,让计数器减去一,如果子线程定义在别处需要 阅读全文
posted @ 2021-09-30 21:19 逆火狂飙 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Java的线程是不允许启动两次的,第二次调用必然会抛出IllegalThreadStateException,这是一种运行时异常,多次调用start被认为是编程错误。 如果业务需要线程run中的代码再次执行,请重新启动一个线程实例,因此此线程的成员应当是启动前设定的而不是自动注入的。 阅读全文
posted @ 2020-05-04 11:21 逆火狂飙 阅读(677) 评论(0) 推荐(0) 编辑
摘要:方法一:让线程从配置中取DataSource。 方法二:从配置中取出SessionFactory,然后交给线程去创建session和Connection,举例如下: 线程里可以这样用: --END-- 2019年11月17日12:08:15 阅读全文
posted @ 2019-11-17 12:09 逆火狂飙 阅读(229) 评论(0) 推荐(0) 编辑

生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示