Tag: pthreads

在使用时,pthreads进程共享内存:docker run –ipc –pid

我正在C ++开发一个多处理的应用程序使用PTHREAD_PROCESS_SHARED pthread_rwlock pthreads实现IPC通过命名共享内存。 对于共享内存访问,我使用shm_open和mmap : auto fd = shm_open(name.c_str(), O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); ftruncate(fd, size); addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); rwlocks在mmap -ed内存中被初始化,使用: pthread_rwlockattr_t attrrwlock; pthread_rwlockattr_init(&attrrwlock); pthread_rwlockattr_setpshared(&attrrwlock, PTHREAD_PROCESS_SHARED); pthread_rwlockattr_setkind_np(&attrrwlock, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); class Shm{ …. pthread_rwlock_t rwLock; … } auto shm = Shm(addr); pthread_rwlock_init(&(shm.rwLock), &attrrwlock); 这在主机环境中工作正常:我可以启动例如一个生产者和多个消费者/工作者进程使用相同的IPC共享内存文件,并通过进程共享pthread_rwlocks同步读/写共享内存: int errc = pthread_rwlock_timedrdlock(&rwLock, […]

检查Linuxfunction来设置线程优先级

我有一个使用pthread_setschedparam()来设置线程优先级的C ++应用程序。 在docker集装箱内,EPERM会失败。 如何检测我的进程是否具有设置线程优先级的必要function?