草庐IT

pthread_once

全部标签

c++ - pthread_mutex_lock/unlock 的性能

我注意到,当我有一个可以大量锁定和解锁线程的算法时,我的性能会受到相当大的影响。有什么办法可以帮助减少开销吗?使用信号量会提高/降低效率吗?谢谢typedefstruct_treenode{struct_treenode*leftNode;struct_treenode*rightNode;int32_tdata;pthread_mutex_tmutex;}TreeNode;pthread_mutex_t_initMutex=PTHREAD_MUTEX_INITIALIZER;int32_tinsertNode(TreeNode**_trunk,int32_tdata){TreeNod

c++ - pragma once inside 和 outside 之间的区别包括守卫?

将#pragmaonce放在include守卫内部和外部有什么区别吗?案例一:#ifndefSOME_HEADER_H#defineSOME_HEADER_H#pragmaonce案例二:#pragmaonce#ifndefSOME_HEADER_H#defineSOME_HEADER_H我只是出于好奇想知道是否有任何特殊情况我应该更喜欢一个或另一个(情况1或情况2),因为我决定在我的代码中结合两者(pragma和headerguards)。编辑:我认为你们误解了我的问题...我问的是pragmaonce的位置,而不是pragmaonce-vs-headerguards。

c++ - Qt QFileSystemWatcher : signal fileChanged() gets emited only once

我正在尝试使用QFileSystemWatcher,但不知为何它没有按预期工作。还是我做错了什么?我已将QFileSystemWatcher设置为监视单个文件。当我第一次修改文件时,fileChanged()被发出,没关系。但是,当我再次修改文件时,fileChanged()不再发出。这是源代码:main.cpp#include#include"mainwindow.h"intmain(intargc,char**argv){QApplicationapp(argc,argv);MainWindowwindow;window.show();returnapp.exec();}主窗口.h

c++ - `#pragma once` 是否进入了 C++0x?

标题说明了一切。#pragmaonce是否针对C++0x进行了标准化?我不知道有哪个编译器不提供它的实现,几乎总是具有相同的语义和名称。 最佳答案 所有#pragma指令都会导致实现以实现定义的方式运行。这在C++03和最新的C++0x草案(n3225.pdf)之间没有变化。包括守卫是可移植替代品。 关于c++-`#pragmaonce`是否进入了C++0x?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

c++ - 未定义对 `pthread_key_create' 的引用(链接器错误)

我已经从这里下载了gtest1.7.0源代码:https://code.google.com/p/googletest/downloads/list并在ubuntu13.10上构建gtest.a文件(lib文件):Linuxubuntu3.11.0-15-generic#23-UbuntuSMPMonDec918:17:04UTC2013x86_64x86_64x86_64GNU/Linux生成的库称为:libgtest.a。在我的main.cpp文件中有:#include#include"gtest/gtest.h"intmain(){std::cout从我构建的终端:g++main

c - 如何让 pthreads 在 Windows 中工作?

我在尝试编译包含pthreads的代码时遇到了如下所述的错误warning:returntypedefaultsto'int'[-Wreturn-type]||Infunction'print_message_function':|warning:controlreachesendofnon-voidfunction[-Wreturn-type]||undefinedreferenceto`_imp__pthread_create'||undefinedreferenceto`_imp__pthread_create'||undefinedreferenceto`_imp__pthre

windows - pthreads 和 CreateThread 的死锁

我在Windows应用程序中使用pthreads。我注意到我的程序陷入了僵局——快速检查表明发生了以下情况:线程1生成了线程2。线程2生成了线程3。线程2等待来自线程3的互斥量,而线程3没有解锁。所以,我去gdb中调试,在回溯第三个线程时得到以下信息:Thread3(thread3456.0x880):#00x7c8106e9inKERNEL32!CreateThread()from/cygdrive/c/WINDOWS/system32/kernel32.dllCannotaccessmemoryataddress0x131不知何故,它在WindowsCreateThread函数中卡

windows - VBS : Check IP address and open URL (but only once)

我正在尝试创建一个VBScript,它将通过检查其IPv4地址(由DHCP分配)来检测正在运行的计算机是否连接到我们工作的LAN,然后根据它是否打开特定的URL在我们的网络内部或外部。该脚本将主要用于在工作(10.12.90.0/22)和家庭(通常是192.168/23,但这实际上可以是任何东西)之间漫游的笔记本电脑上。在这两种情况下,我只需要打开corectURL一次,因为几乎总是会有多个网络适配器(有线/无线/蓝牙等)。下面的脚本在我测试时似乎可以工作,但我不是程序员,我不确定是否有更好的方法来做到这一点。理想情况下,我希望避免因延迟而对服务器执行ping操作。strCompute

c - 如何在 Windows 上设置 pthreads?

我在Windows上找到了pthreads的实现here,但我无法让它正常工作。任何人都可以帮我安装pthreads吗?比如将DLL、.lib和.h文件放在哪里?另外,作为一个环境,我没有使用VisualStudio,而是使用Mingw的Codeblocks。我通常在Linux上开发,但这个项目必须在Windows上,并且我已经使用pthreads实现了一些代码,所以我不想使用'windows.h'中的Windows线程。 最佳答案 .dll可以放在您的PATH环境中列出的任何目录中变量。.lib文件可以放在LIB环境中列出的任何目

c - MinGW,始终与 pthreads 链接

我最近一直在尝试使用MinGW进行开发,但出现了一些问题。似乎出于某种原因它总是想与pthread链接。我尝试用C语言编译一个简单的helloworld,但出现类似的错误ld.exe:cannotfind-lpthread很明显,它正在搜索pthread库,但没有找到。我从MinGW-get下载了库,正如预期的那样,编译和链接工作正常。然而,在剥离一个仅包含stdio.h的C语言简单helloworld的可执行文件后,该文件仍然有46k大。同样的文件在Cygwin上用gcc编译和剥离就像9k,MSVC也差不多。所以它提示缺少一个库。提供库可以解决问题并使其正常工作。但是在C中剥离的he