我正在做C++多线程编程.我使用互斥锁来读取和写入队列以避免死锁.目前,我只推出1个线程
pthread_mutex_lock(&the_mutex);
Run Code Online (Sandbox Code Playgroud)
但是,在GDB中,我的代码在这里被冻结,它正在等待.
为什么?只有一个线程!!!
谢谢
服务器程序处于无限循环中.如何检查?
我的解决方案
使用GDB检查控制循环的条件变量的值.
小程序可以.
如何为大型计划做到这一点?
如果程序没有在GDB中运行,如何检测无限循环?
谢谢
给定一个整数数组,找到第一个唯一的整数.
我的解决方案:使用 std::map
将整数(数字作为键,其索引作为值)逐个放入(O(n^2 lgn)),如果有重复,则从地图中删除条目(O(lg n)),将所有数字放入地图后,迭代地图并找到索引最小的键O(n ).
O(n^2 lgn) 因为地图需要做排序.
效率不高.
更好的解决方案?
在unix上,一个进程被卡住,你怀疑它可能是死锁,找到死锁的原因以及如何删除和避免它?
我知道死锁的4个条件:
相互排斥:资源最多可以分配给一个进程(不共享).
保持并等待:允许持有资源的处理请求另一个资源.
没有先发制人:进程必须释放其资源; 他们不能被带走.
循环等待:必须有一系列进程,使链中的每个成员都在等待链的下一个成员持有的资源.
但是,它们是理论上的,如何确定unix实际上的死锁?只有看到一个过程没有取得进展?如何找到导致死锁的部分代码和原因?如果您被允许使用工具,可以使用什么?
谢谢
这是一个面试问题:
假设:我有100万亿个元素,每个元素的大小从1字节到1万亿字节(0.909 TiB).如何存储和访问它们非常有效?
我的想法:他们希望测试有效处理大量数据的知识.这不仅仅是一个正确答案的问题.
将它们保存为一些特殊的数据结构?
实际上我对这种开放式问题没有任何想法.
任何帮助都非常感谢.
如何初始化const int二维向量:
Const int vector < vector < int > > v ?
v = {1 , 1 ; 1, 0} ?
Run Code Online (Sandbox Code Playgroud)
这是行不通的 .
给定2个字符串,设计一个函数,可以检查它们是否相互旋转而不对它们进行任何更改?返回值是布尔值.
例如ABCD,ABDC,它们不是旋转.返回false
ABCD,CDAB或DABC是轮换.返回true.
我的解决方案
将其中一个向右或向左移动一个位置,然后在每次迭代时对它们进行比较.如果它们在所有迭代中不相等,则返回false.否则,返回true.
它开着).还有其他更有效的解决方案吗?如果它们的内容无法更改怎么办?
谢谢
如何查找在文件中给出的单词之间的字谜.
我的解决方案
对它们进行排序然后找到重复项.
O(n mlgm).n:单词数,m:单词的最大大小
更好的解决方案?
谢谢
给定未知长度列表,通过仅扫描一次来返回其中的随机项.
我的想法:
类似的算法是水库采样(由其他人发布).但是,它太复杂了,因为它需要运行rand()并在每次迭代时保持k个节点.
有更好的解决方案吗?O(n)时间和O(1)空间?
在python 2.7.2中,我需要在Linux中制作一个文件的副本.
newfile ="namePart1"+ dictionary [key] +"namePart2"
os.system("cp cfn5e10_1.lp newfile")
但是,newfile不能被正确的字符串替换.
论坛中的帖子无法帮助.
任何帮助都非常感谢.