分类: Java Code

297 篇文章

多线程-线程安全的单例模式之懒汉式
package top.qaqaq.java.P437; /** * 使用同步机制将单例模式中的懒汉式改写为线程安全的 * * @author RichieZhang * @create 2022-10-21 下午 1:38 */ public class BankTest { } class Bank { private Bank() { } p…
多线程-同步方法处理实现Runnable的线程安全问题
package top.qaqaq.java.P435; /** * 使用同步方法解决实现Runnable接口的线程安全问题 * * 关于同步方法的总结: * 1. 同步方法仍然涉及到同步监视器,只是不需要我们显式的声明。 * 2. 非静态的同步方法,同步监视器是:this * 静态的同步方法,同步监视器是:当前类本身 * @author Rich…
多线程-同步代码块处理继承Thread类的线程安全问题
package top.qaqaq.java.P434; /** * @author RichieZhang * @create 2022-10-20 下午 10:32 */ /** * 使用同步代码块解决继承Thread类的方式的线程安全问题 * * 例子:创建三个窗口买票,总票数为100张. 使用继承Thread类的方式 * * 在继承Thre…
多线程-线程安全问题的举例和解决措施、同步代码块处理实现Runnable的线程安全问题
package top.qaqaq.java.P432; /** * 例子:创建三个窗口买票,总票数为100张. 使用实现Runnable接口的方式 * * 1.问题:卖票过程中,出现了重票、错票 -->出现了线程的安全问题 * 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。 * 3.如何解决:当一个…
Thread类中的常用方法
Thread类中的常用的方法: * 测试Thread中的常用方法: * 1. start():启动当前线程; 调用当前线程的run() * 2. run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 * 3. currentThread(): 静态方法,返回执行当前代码的线程 * 4. getName(): 获…
创建多线程的两种方式
创建多线程的两种方式 说明两个问题: 问题一:我们启动一个线程,必须调用start(),不能调用run()的方式启动线程。 问题二:如果再启动一个线程,必须重新创建一个Thread子类的对象,调用此对象的start(). 两种方式的对比: * 开发中:优先选择:实现Runnable接口的方式 * 原因:1. 实现的方式没有类的单继承性的局限性 * …
程序、进程、线程的理解
程序、进程、线程的理解 进程可以细化为多个线程。 每个线程,拥有自己独立的:栈、程序计数器 多个线程,共享同一个进程中的结构:方法区、堆
IDEA的使用与多线程-线程的常用方法、线程优先级的设置
package top.qaqaq.java.P421; /** * 测试Thread中的常用方法: * 1. start():启动当前线程; 调用当前线程的run() * 2. run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 * 3. currentThread(): 静态方法,返回执行当前代码的线程 …
IDEA的使用与多线程-继承方式的课后练习
package top.qaqaq.java.P420; /** * 创建两个分线程,其中一个线程遍历100以内的偶数,另一个线程遍历100以内的奇数 * * @author RichieZhang * @create 2022-10-20 下午 3:46 */ public class ThreadDemo { public static voi…
IDEA的使用与多线程-IDEA的安装
查看安装目录结构 bin:容器,执行文件和启动参数等help:快捷键文档和其他帮助文档jre64:64 位java 运行环境lib:idea 依赖的类库license:各个插件许可plugin:插件其中:bin 目录下: 这里以我的电脑系统(64 位 windows7,16G 内存)为例,说明一下如何调整 VM 配置文件: 大家根据电脑系统的位数,…
项目-项目三 开发团队人员调度软件
项目-项目三TSUtility和Data类的说明、项目三中Equipment及其实现类的完成、项目三中Employee及其子类的实现、项目三NameListService属性和构造器的实现、项目三NameListService中两个方法及TeamException的完成、项目三测试NameListService的getAllEmployees()、…
eclipse复制工作空间配置
eclipse复制工作空间配置 总结一下,复制工作空间配置步骤如下: 1 使用eclipse新建workspace。 2 将新建的workspace下的.metadata.plugins内容全部删除。 3 将需要拷贝的workspace下的.metadata.plugins内容除了org.eclipse.core.resources文件夹的其他文件…
异常处理-异常处理练习:综合练习
package top.qaqaq.java.P384; //自定义异常类 public class EcDef extends Exception { static final long serialVersionUID = -3387516993121229948L; public EcDef() { } public EcDef(String…
异常处理-异常处理练习:基本使用
package top.qaqaq.java.P383; public class ReturnExceptionDemo { static void methodA() { try { System.out.println("进入方法A"); throw new RuntimeException("制造异常"); } finally { Syst…