test
qq_44719229
这个作者很懒,什么都没留下…
展开
-
用线程实现经典生产者消费者问题
2)用线程实现经典生产者消费者问题解决生产者消费者问题的方法一般采用同步机制保证生产者和消费者之间的同步,这种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。同步问题核心在于:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用信号或加锁机制,保证资源在任意时刻至多被一个线程访问。Java语言在多线程编程上实现了完全对象化,提供了对同步机制的良好支持。生产者与消费者模型中,要保证以下几点:同一时间内只能有一个生产者生产 生产方法加锁sychronized同一时间原创 2020-05-26 11:04:51 · 568 阅读 · 0 评论 -
linux哲学家进餐问题
分析当五个哲学家同时去取他左边的筷子,每人拿到一只筷子且不释放,即五个哲学家只得无限等待下去,引起死锁。解决方法:奇数号哲学家先拿他左边的筷子,偶数号哲学家先拿他右边的筷子。这样破坏了同方向环路,一个哲学家拿到一只筷子后,就阻止了他邻座的一个哲学家吃饭。按此规定,将是1、2号哲学家竞争I号筷子;3、4号哲学家竞争4号筷子。#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include&l..原创 2020-05-26 10:59:08 · 592 阅读 · 0 评论 -
最小生成树
最小生成树的各种算法子图:从原图中选中一些顶点和边组成的图.生成子图:选中一些边和所有顶点组成的图.生成树:正好是一棵树的生成子图.最小生成树:权值之和最小的生成树.Prim算法复杂度:O(n^2) $$$$#include<iostream>using namespace std;const int INF = 1e4;const int N = 100;...原创 2019-10-16 08:48:11 · 154 阅读 · 0 评论 -
贪心算法
贪心算法例题基本流程:决定贪心策略->得到局部最优解->得到全局最优解最优装载问题#include<iostream>#include<algorithm>const int N=10000;using namespace std;double w[N];int main(){ double c; int n; cout...原创 2019-10-16 08:44:31 · 178 阅读 · 0 评论 -
test分治问题和8皇后
test原创 2019-09-26 19:27:49 · 175 阅读 · 0 评论 -
Semaphore用法
Semaphore及其用法详解Semaphore的主要方法摘要:void acquire():从此信号量获取一个许可,在提供一个许可前一直将线程阻塞,否则线程被中断。void release():释放一个许可,将其返回给信号量。int availablePermits():返回此信号量中当前可用的许可数。boolean hasQueuedThreads():查询是否有线程正在等待获取。...原创 2019-10-09 08:27:25 · 138 阅读 · 0 评论 -
什么是哈希表
什么是哈希表哈希表 是 Hash Table 一词的中文翻译,算法书里通常称这种数据结构为「散列表」。之所以称之为 散列表 和这种数据结构的存储方式有关,每个按序进入的数据经过 散列函数 的计算后会无序的分布在哈希表不同的位置,这是与数组、链表等有序结构所不同的。哈希表实际上是数组的一种扩展。在哈希表中通过 哈希函数 我们可以将数字、字符串等数据中比较有代表性的数据作为 键值 转换成数组的 索...原创 2019-10-09 09:27:21 · 566 阅读 · 0 评论