算法
算法实践
asa-x
面对问题,重要的不是完美解决,而是解决,不完美也是可以接受的
展开
-
多线程交替打印ABC
需求 使用三个线程,1,2,3,分别负责打印A,B,C,打印10次。 分析 分析锁的获取和释放和通知,线程堵塞 方式1,使用ReentrantLock 使用ReentrantLock(true)公平锁,再设置操作的标志位current(A,B,C),当current和当前线程负责打印的字段相同,执行操作,否则释放锁,执行完,释放锁,代码如下: public class PrintABCTask extends Thread { private static ReentrantLock lock =原创 2021-11-05 04:51:13 · 910 阅读 · 0 评论 -
八皇后问题
参考资料: 五大常用算法之四:回溯法 漫画:什么是八皇后问题? 八皇后问题总结: N皇后问题,N格棋盘,对于第N个皇后而言,第N个皇后放在第N行。重点在于如何处理回溯的问题。回溯可能有但不限有如下情形 本身发现可以放置皇后的第N个,这时,只需要回溯到前一个N-1的行数,然后位置往后重新找一个新的位置就可以了。 如果这个回溯的点(N-M)不是最初回溯的点,即已经对棋盘的数据进行了占用(对二维数组做了赋值处理),那么就需要注意了 取消因为(n-m)在放置时,对棋盘数据的赋予的值,还原数据到(n-m-1)的情原创 2020-07-09 20:40:30 · 108 阅读 · 0 评论