小编use*_*288的帖子

只有一个线程可能导致死锁或冻结Linux上的程序?

我正在做C++多线程编程.我使用互斥锁来读取和写入队列以避免死锁.目前,我只推出1个线程

    pthread_mutex_lock(&the_mutex);
Run Code Online (Sandbox Code Playgroud)

但是,在GDB中,我的代码在这里被冻结,它正在等待.

为什么?只有一个线程!!!

谢谢

c++ linux multithreading mutex deadlock

4
推荐指数
1
解决办法
1012
查看次数

服务器程序处于无限循环中.如何检查?

服务器程序处于无限循环中.如何检查?

我的解决方案

使用GDB检查控制循环的条件变量的值.

小程序可以.

如何为大型计划做到这一点?

如果程序没有在GDB中运行,如何检测无限循环?

谢谢

c++ gdb loops infinite-loop

3
推荐指数
1
解决办法
969
查看次数

给定一个整数数组,找到第一个唯一的整数

给定一个整数数组,找到第一个唯一的整数.

我的解决方案:使用 std::map

将整数(数字作为键,其索引作为值)逐个放入(O(n^2 lgn)),如果有重复,则从地图中删除条目(O(lg n)),将所有数字放入地图后,迭代地图并找到索引最小的键O(n ).

O(n^2 lgn) 因为地图需要做排序.

效率不高.

更好的解决方案?

c c++ sorting algorithm map

3
推荐指数
1
解决办法
7133
查看次数

如何在UNIX上实际找到进程的死锁原因?

在unix上,一个进程被卡住,你怀疑它可能是死锁,找到死锁的原因以及如何删除和避免它?

我知道死锁的4个条件:

  1. 相互排斥:资源最多可以分配给一个进程(不共享).

  2. 保持并等待:允许持有资源的处理请求另一个资源.

  3. 没有先发制人:进程必须释放其资源; 他们不能被带走.

  4. 循环等待:必须有一系列进程,使链中的每个成员都在等待链的下一个成员持有的资源.

但是,它们是理论上的,如何确定unix实际上的死锁?只有看到一个过程没有取得进展?如何找到导致死锁的部分代码和原因?如果您被允许使用工具,可以使用什么?

谢谢

unix linux multithreading deadlock process

3
推荐指数
1
解决办法
4121
查看次数

我有100万亿个元素,每个元素的大小从1字节到1万亿字节(0.909 TiB).如何存储和访问它们非常有效?

这是一个面试问题:

假设:我有100万亿个元素,每个元素的大小从1字节到1万亿字节(0.909 TiB).如何存储和访问它们非常有效?

我的想法:他们希望测试有效处理大量数据的知识.这不仅仅是一个正确答案的问题.

将它们保存为一些特殊的数据结构?

实际上我对这种开放式问题没有任何想法.

任何帮助都非常感谢.

algorithm large-data-volumes save data-structures

3
推荐指数
1
解决办法
363
查看次数

如何在C++中初始化const int二维向量

如何初始化const int二维向量:

Const int vector < vector < int > >  v ? 

v = {1 , 1 ; 1, 0}  ?
Run Code Online (Sandbox Code Playgroud)

这是行不通的 .

c++ const vector data-structures

3
推荐指数
2
解决办法
371
查看次数

如何检查2个字符串是否相互旋转?

给定2个字符串,设计一个函数,可以检查它们是否相互旋转而不对它们进行任何更改?返回值是布尔值.

例如ABCD,ABDC,它们不是旋转.返回false

ABCD,CDAB或DABC是轮换.返回true.

我的解决方案

将其中一个向右或向左移动一个位置,然后在每次迭代时对它们进行比较.如果它们在所有迭代中不相等,则返回false.否则,返回true.

它开着).还有其他更有效的解决方案吗?如果它们的内容无法更改怎么办?

谢谢

c++ string algorithm comparison rotation

2
推荐指数
1
解决办法
1081
查看次数

如何查找在文件中给出的单词之间的字谜

如何查找在文件中给出的单词之间的字谜.

我的解决方案

对它们进行排序然后找到重复项.

O(n mlgm).n:单词数,m:单词的最大大小

更好的解决方案?

谢谢

sorting string algorithm

2
推荐指数
2
解决办法
4069
查看次数

给定未知长度列表,通过仅扫描一次来返回其中的随机项

给定未知长度列表,通过仅扫描一次来返回其中的随机项.

我的想法:

类似的算法是水库采样(由其他人发布).但是,它太复杂了,因为它需要运行rand()并在每次迭代时保持k个节点.

有更好的解决方案吗?O(n)时间和O(1)空间?

c++ random algorithm list data-structures

2
推荐指数
1
解决办法
1956
查看次数

运行cp命令来制作文件的副本或在Python中更改文件名

在python 2.7.2中,我需要在Linux中制作一个文件的副本.

newfile ="namePart1"+ dictionary [key] +"namePart2"

os.system("cp cfn5e10_1.lp newfile")

但是,newfile不能被正确的字符串替换.

论坛中的帖子无法帮助.

任何帮助都非常感谢.

python linux bash shell cp

2
推荐指数
1
解决办法
2万
查看次数