相关疑难解决方法(0)

如何在C++ 11中终止线程?

我不需要正确终止线程,或使其响应"终止"命令.我有兴趣使用纯C++ 11强制终止线程.

c++ multithreading c++11

121
推荐指数
5
解决办法
16万
查看次数

中断被阻止的读取

我的程序经历了这样的循环:

...
while(1){
  read(sockfd,buf,sizeof(buf));
  ...
}
Run Code Online (Sandbox Code Playgroud)

read函数在等待输入时阻塞,这恰好来自套接字.我想处理SIGINT并且基本上告诉它在读取时停止读取函数然后调用任意函数.做这个的最好方式是什么?

c linux signals interrupt

14
推荐指数
1
解决办法
1万
查看次数

std :: atomic_flag作为成员变量

std::atomic_flag在类构造函数中初始化一个安全的方法是什么?

这个问题好像在问我要问的同一个问题 - 除了这里提问者抱怨编译问题.

我的问题涉及C++标准本身.根据此站点,std::atomic_flag未指定初始化using构造函数初始化程序语法.

std::atomic_flag static_flag = ATOMIC_FLAG_INIT; // static initialization,
// guaranteed to be available during dynamic initialization of static objects.

int main()
{
    std::atomic_flag automatic_flag = ATOMIC_FLAG_INIT; // guaranteed to work
//    std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // unspecified
}
Run Code Online (Sandbox Code Playgroud)

这些信息是否正确?如果是这样,我认为:

struct Foo
{
  Foo() : flag(ATOMIC_FLAG_INIT)
  { }

  std::atomic_flag flag;
};
Run Code Online (Sandbox Code Playgroud)

......也没有说明.那么,这是否意味着我们不能使用std::atomic_flag作为类的成员变量?或者如果我们std::atomic_flag::clear()从类构造函数中简单调用它是否安全?

c++ c++11

14
推荐指数
1
解决办法
2541
查看次数

标签 统计

c++ ×2

c++11 ×2

c ×1

interrupt ×1

linux ×1

multithreading ×1

signals ×1