mutex

    0热度

    1回答

    我一直在寻找一段时间,因为我无法找到正确的答案,所以我决定提问。 其实我有两个进程 流程1: #include <windows.h> #include <stdio.h> // This process creates the mutex object. int main(void) { HANDLE hMutex; hMutex = CreateMutex(

    0热度

    1回答

    下面是我的代码,其中两个变量在回调时更新,每50ms调用一次。还有一个读取器线程每隔50ms唤醒一次并读取变量。 经过this后,我猜想会有一些情况,读取的线程会在收到回调时唤醒,因为我在读写时没有锁定相同的互斥量,在这种情况下,它会导致读取的内存不一致。 但是,当我运行它时,这种情况永远不会发生。是不是已经运行了足够长的时间,还是在我的理解中有错误? recursive_mutex mutex1

    1热度

    3回答

    我有三个类,我们称它们为A,B和HardwareDriver。每个类都有一个实例。 a和b运行在两个不同的线程中。他们都通过HardwareDriver的一个实例访问硬件。喜欢的东西: Class A { ... }; Class B { ... }; Class HardwareDriver { public: int accessHardware(); };

    -2热度

    1回答

    我有这样的结构: struct thread_items { pthread_mutex_t mutex; int i; thread_items(pthread_mutex_t m, int i): mutex(m), i(i){} } 我想创建这个结构数组并初始化所有互斥,而我在这。出于某种原因,当我打印互斥地址我得到的所有互斥的同一地址: vector <

    2热度

    1回答

    看看下面的例子,我创建一个std::mutex,将其锁定,然后用手将锁定到另一个线程: #include <future> #include <mutex> int main() { // Create and lock a mutex std::mutex mutex; std::unique_lock<decltype(mutex)> lock(mutex

    0热度

    2回答

    Quoting POSIX: 的pthread_cond_broadcast()或pthread_cond_signal()功能可以由一个线程它是否当前拥有那个线程调用pthread_cond_wait()或pthread_cond_timedwait()已经与在其等待状态变量相关联的互斥被调用;然而,如果需要可预测的调度行为,那么该互斥量将被调用pthread_cond_broadcast()或

    0热度

    1回答

    我传递结构,其中包含一个char *在pthread_create我锁定的主要和互斥锁的线程,所以我可以保护这个字符串,因为当第二个线程将创建的字符串会改变,第一线程将使用第二个字符串,而不是第一个字符串。下面是代码: 的main.c while(th_num < th_size) { pthread_mutex_lock(&lock); received = 0;

    3热度

    1回答

    我知道这意味着如果你声明一个数组volatile,那么对数组的引用不是数组中的项。 我学习互斥算法,所以我写了一些测试代码: public class MutualExclusion { static final int N = 10; static final int M = 100000; volatile static int count = 0;

    1热度

    2回答

    #include <pthread.h> pthread_mutex_t* mut; int main() { mut = PTHREAD_MUTEX_INITIALIZER; } 上面的代码吐出了error: expected expression before ‘{’ token。 #include <pthread.h> pthread_mutex_t* mu

    5热度

    1回答

    考虑下面的代码: pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST); pthread_mutex_t mut; pthread_mutex_init(&mut, &attr); pthread_mutexat