草庐IT

pthread_mutex_trylock

全部标签

android - 编译到Android : invalid signature of pthread_key_create

CGO_CFLAGS="--sysroot=android-sdk-linux/ndk-bundle/platforms/android-9/arch-arm/"CGO_ENABLED=1CC=android-sdk-linux/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++CXX=android-sdk-linux/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/lin

dictionary - Golang 多个计时器与 map+channel+mutex

所以我正在使用map/channel/mutex实现多个计时器。为了取消计时器,我有一个存储取消信息的channel映射,下面是代码:vartimerCancelMap=make(map[string]chaninterface{})varmutexLockersync.MutexfunccancelTimer(timerIndexstring){mutexLocker.Lock()defermutexLocker.Unlock()timerCancelMap[timerIndex]=make(chaninterface{})timerCancelMap[timerIndex]现在这个

golang 使用结构本身为 sync.Mutex 和 sync.Cond 初始化成员

这是代码:typesomeThingstruct{sync.Mutexcv*sync.Condnumint}funcNewSomething()*someThing{//howdoyoudothis?return&someThing{cv:sync.NewCond(sync.Mutex)}}此代码编译失败:sync.Mutex(type)isnotanexpression所以基本上问题是如何在初始化时引用结构本身(因为它有一个嵌入式成员sync.Mutex)?(例如,c++有this)。 最佳答案 可以先新建一个实例,然后再引用嵌入

go - sync.Mutex 和 *sync.Mutex 哪个更好?

在Go中,我们可以使用:typeDatastruct{lock*sync.Mutex}或typeDatastruct{locksync.Mutex}然后,像这样使用:func(d*Data)Update(){d.lock.Lock()deferd.lock.Unlock()//update}我能想到的区别是*sync.Mutex需要实例化才能使用。sync.Mutex和*sync.Mutex有什么区别,哪个更好? 最佳答案 commentfrommkopriva是正确的,应该是公认的答案。但是,阅读OP的问题,我认为可能存在一个值得

windows - 将 Win32 API 功能与 pthreads 一起使用/从 pthreads 使用

我有自己的线程库,使用TinyThread++构建。它工作得很好,对我来说也是一次很好的学习经历。我有自己的数据结构来传递消息,这个界面对我来说很有意义,主要是因为我是它的作者。每当在我的系统中创建一个线程时,它都会循环运行,并偶尔通过我自己设计的消息传递协议(protocol)检查消息。现在我想开始使用一些WindowsAPI功能,Windows有自己的一套约定和消息队列等。现在我很确定TinyThread++使用pthreads。由于我使用的是MinGW,我想知道是否在Windows线程上实现了pthreads。如果是这种情况,我也许可以将我的pthreads-threads视为w

c - 等同于 Windows 上的 PTHREAD_MUTEX_INITIALIZER?

是否可以静态初始化CRITICAL_SECTION,如pthread_mutex_tmutex=PTHREAD_MUTEX_INITIALIZER?换句话说,是否可以在C语言中初始化库中的全局CRITICAL_SECTION而不必弄乱DllMain等? 最佳答案 是的,只需在DLL_PROCESS_ATTACH中初始化并在DLL_PROCESS_DETACH中删除CRITICAL_SECTIONg_cs={0};BOOLWINAPIDllMain(HINSTANCEhinstDLL,//handletoDLLmoduleDWORDf

c++ - pthreads_cond_wait 和排队 pthreads 的问题

我试图让pthreads同时运行一个函数的多个实例,以提高运行时速度和效率。我的代码应该产生线程并在队列中有更多项目时保持线程打开。然后那些线程应该做“某事”。该代码应该要求“继续?”当队列中没有更多项目时,如果我键入"is",则应将项目添加到队列中,线程应继续做“某事”。这是我目前所拥有的,#include#include#include#includeusingnamespacestd;#defineNUM_THREADS100intmain();queuetestQueue;void*checkEmpty(void*arg);void*playQueue(void*arg);vo

c++ - 在 Visual Studio 2013 上的 C++ 中使用 pthread

我正在尝试在Windows上使用pthread库。我下载了一个带有Pre-built.2文件夹的zip,然后按照说明进行操作。到目前为止我做了什么:将POSIX\Pre-built.2\include中的所有.h文件放入MSVS2013\VC\include文件夹中\dll\x86dll\x86中的所有.dll文件到VC\binlib\x86中的所有.lib文件到VC\lib在Property->Config->Linker->Input->AdditionalDependencies中,pthreadVC2.lib;pthreadVCE2.lib;pthreadVSE2.lib;%(

windows - Windows 上的 Linux pthread 可移植性

对于某个项目,我必须在pthread中使用静态互斥锁初始化器。但是我的库应该也可以在Windows上移植。pthread_mutex_tcsapi_mutex=PTHREAD_MUTEX_INITIALIZER;Windows上有相应的静态初始化程序吗?谢谢。 最佳答案 Pthreads-win32应该为这种结构提供很好的支持。但是我没有查过。 关于windows-Windows上的Linuxpthread可移植性,我们在StackOverflow上找到一个类似的问题:

windows - C++/CLI 中的错误,除非使用 Pthread 创建委托(delegate)实例,否则无法获取函数地址

我在VisualC++2008Professional上使用C++/CLI,因为我使用的是Windows窗体,这意味着我已经管理了代码并且我正在尝试调用静态函数LoginAccounts,但我得到一个错误可能是因为我我正在混合托管代码和非托管代码,但我不知道该怎么做。我正在使用适用于Windows的PThreadSystem::Voidtesting_Click(System::Object^sender,System::EventArgs^e){pthread_create(&t,NULL,&Contas::LoginAccounts,this);//Errorinthisline}