在阅读着名的C10k文章并在网上搜索自编写之后事情如何演变之后,我想知道今天的标准服务器是否有可能使用每个连接的线程处理> 10000个并发连接(可能与一个线程池的帮助,以避免创建/终止进程).
一些可能影响问题解决方法的细节:
显然我不是这方面的专家,所以任何评论或建议都将受到高度赞赏:)
我想知道在计算其特征之前建议应用于图像的一些预处理实践,以便尽可能地提高过程的效率.(例如裁剪,改变格式等......)
提前致谢 :)
我正在编写一个并发TCP服务器,它必须使用'每个连接的线程'方法处理多个连接(使用线程池).我怀疑哪个是每个线程获得不同文件描述符的最佳方式.
我发现接下来的两种方法是最推荐的:
accepts()所有的传入连接和存储他们的描述符上的数据结构(例如:一queue).然后每个线程都能从队列中获取fd.我找到他们每个人的问题:
mutex_lock),因此在相当多的线程想要在同一时刻读取的情况下,我不知道会经过多长时间直到所有人都能实现目标.accept()还没有在Linux上完全解决,所以也许我需要为它创建一个人工解决方案,最终使应用程序至少与方法一样慢1.资料来源:
(一些链接在讨论方法2:在Linux上存在一个雷鸣般的问题 - 存在问题 - 以及我发现的一篇文章(过时):linux-scalability/reports/accept.html
并且建议方法1的SO答案:可以同时调用接受一个插槽从几个线程同时
我真的对此事感兴趣,所以我会很感激任何意见:)
我不得不做一个涉及cv :: Ptr(指针)的技巧,以便能够调用特定的函数,但是当程序执行后尝试释放内存时,程序似乎有一些问题,因为发生了分段错误.
1.Code:
SurfDescriptorExtractor extractor1;
Ptr<DescriptorExtractor> extractor = &extractor1;
FlannBasedMatcher matcher1;
Ptr<DescriptorMatcher> matcher = &matcher1;
Run Code Online (Sandbox Code Playgroud)
2.错误:
Conditional jump or move depends on uninitialised value(s)
==23559== at 0x56585C0: ____strtod_l_internal (strtod_l.c:1659)
==23559== by 0x5653FAE: strtod (strtod.c:70)
==23559== by 0x41425B1: icv_strtod(CvFileStorage*, char*, char**) (in /usr/local/lib/libopencv_core.so.2.4.2)
==23559== by 0x415875F: icvYMLParseValue(CvFileStorage*, char*, CvFileNode*, int, int) (in /usr/local/lib/libopencv_core.so.2.4.2)
==23559== by 0x4158BA4: icvYMLParseValue(CvFileStorage*, char*, CvFileNode*, int, int) (in /usr/local/lib/libopencv_core.so.2.4.2)
==23559== by 0x41593F7: icvYMLParseValue(CvFileStorage*, char*, CvFileNode*, int, int) (in /usr/local/lib/libopencv_core.so.2.4.2)
==23559== by 0x41593F7: icvYMLParseValue(CvFileStorage*, char*, CvFileNode*, int, …Run Code Online (Sandbox Code Playgroud)