摘要: 线程间共享变量需要使用volatile关键字标记,确保每个线程都能读取到更新后的变量值 为什么要对线程间共享变量用关键字volatile声明? 这涉及到java的内存模型.在java虚拟机中,变量的值保存在主内存中,但是,当线程访问变量时,会先取一个副本,并保存在自己的工作内存中.如果线程修改了变量 阅读全文
posted @ 2020-10-12 21:33 刘指导 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 注意: 这只说明最常见的三种实现方式,并不说明线程池. 三种实现方案 继承Thread类的方式进行实现 实现Runnable接口的方式进行实现 利用Callable和Future接口方式实现 方案一:继承Thread类 定义一个MyThread继承Thread 在MyThread类中重写run方法 阅读全文
posted @ 2020-10-12 20:16 刘指导 阅读(1551) 评论(0) 推荐(1) 编辑
摘要: 八皇后问题介绍 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.在8x8格的国际象棋上摆放8个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行,同一列或同一斜线上,问有多少中摆法(92) 八皇后问题算法思路分析 第一个皇后先放第一行第一列 第二个皇后放在第二行第一列,然后判断是否O 阅读全文
posted @ 2020-10-12 19:29 刘指导 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 递归概念 简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁. 递归的调用机制 举两个小案例,帮助理解递归. 打印问题 阶乘问题 使用图解方式说明递归的调用机制 递归需要遵守的重要规则 执行一个方法时,就创建一个新的受保护的独立空间( 阅读全文
posted @ 2020-10-12 16:54 刘指导 阅读(152) 评论(0) 推荐(0) 编辑