2021
07-17
07-17
Java多线程实现模拟12306火车站售票系统
该系统一共涉及到3个类:车票(Ticket)12306系统(System12306)售票窗口(Window)车票类,涉及三个属性:起始站终点站票价publicclassTicket{//起始站privateStringstartStation;//终点站privateStringdestination;/**POJO对象,它里面的基本类型最好使用包装类*因为如果如果该类用来装从数据库中读取的信息*如果读取出null,那么基本类型是无法存null的,就会...
继续阅读 >
目录线程池的优点线程池的实现原理ThreadPoolExecutor阻塞队列线程池工厂拒绝策略提交任务到线程池execute方法submit方法关闭线程池合理的参数7、本文小结java系统的运行归根到底是程序的运行,程序的运行归根到底是代码的执行,代码的执行归根到底是虚拟机的执行,虚拟机的执行其实就是操作系统的线程在执行,并且会占用一定的系统资源,如CPU、内存、磁盘、网络等等。所以,如何高效的使用这些资源就是程序员在平时写代码时候...
今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashMap时,其中有一个原因是:线程不安全的HashMap,HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,查找时会陷入死循环。纠起原因看了其他的博客,都比较抽象,所以这里以图形的方式展示一下,希望支持!1)当往HashMap中添加元素时,会引起HashMap容器的扩容,原理不再解释,直接附源代码,如下:/****往表中添...
最近阅读了JDK线程池ThreadPoolExecutor的源码,对线程池执行任务的流程有了大体了解,实际上这个流程也十分通俗易懂,就不再赘述了,别人写的比我好多了。不过,我倒是对线程池是如何回收工作线程比较感兴趣,所以简单分析了一下,加深对线程池的理解吧。那么,就以JDK1.8为例分析吧。1.runWorker(Workerw)工作线程启动后,就进入runWorker(Workerw)方法。里面是一个while循环,循环判断任务是否为空,若不为空,执行任务;若取...
使用java制作一款简单的扫雷游戏,供大家参考,具体内容如下importjava.util.*;publicclassnephelokokkygia{int[][]abarta;//数字矩阵boolean[][]abhartach;//当前点是否被标记booleanalpluachra;//判断是否结束游戏intcaoineag;//标记的flag数intcatSith;//标记命中雷的个数staticintcount;Scannerclurichaun;//输入器finalintDOBHARCHU=-1;//非雷的abstra矩阵值finali...
本文是基于PDF文档转PNG图片,然后进行图片拼接,拼接后的图片转为base64字符串,然后拼接html文档写入html文件实现PDF文档转HTML文档。引入Maven依赖<!--https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox--><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.12</version></dependency>工具实现类packagecom.frame.utils;importorg...
目录一、首先看图二、lock()跟踪源码2.1非公平锁实现2.1.1tryAcquire(arg)2.1.2acquireQueued(addWaiter(Node.EXCLUSIVE),arg)2.2公平锁实现2.2.1tryAcquire(arg)一、首先看图二、lock()跟踪源码这里对公平锁和非公平锁做了不同实现,由构造方法参数决定是否公平。publicReentrantLock(booleanfair){sync=fair?newFairSync():newNonfairSync();}2.1非公平锁实现staticfinalclassNonfairSyncextends...
目录一、导入jar包二、导出三、导出一、导入jar包所需jar包,在pom中添加如下坐标即可<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency>注意:操作Excel文件区分版本:2003版本(包含2003)以前的扩展名为.xls需要...
目录1.问题1.1.PageHelper先开启分页,后对list数据操作1.2.先对list数据进行操作,后开启分页2.原因3.解决方案1.问题阿里巴巴Java开发手册1.1.PageHelper先开启分页,后对list数据操作@OverridepublicPageInfo<HdQueryVo>getRecordsByView(intpageNo,intpageSize){PageHelper.startPage(pageNo,pageSize);List<HdQueryVo>hdQueryVosByView=actionMapper.getActionByView();List<HdQueryVo>...
本文实例为大家分享了Java实现数独小游戏的具体代码,供大家参考,具体内容如下题目要求:制作一个数独游戏。数据游戏拼图由一个3*3的九宫格组成,每个格式又分成一个小九宫格,共九九八十一个小格子。游戏规则:游戏开始前会有一些格式了写好了1-9的数,在剩下的格式里填写1-9的数,直到把所有格式填满,要求任何一行或一列或者任一个小九宫中没有相同的数字。拼图示例如下:任务要求:(1)可以根据在九宫格中初始给出的数字个...