stdthread

    1热度

    2回答

    在C++ 11 &以上什么优点或缺点存储一std::thread直接像这样类的成员时: std::thread my_thread; 与之相对到存储std::shared_ptr或std::unique_ptr到线程像这样: std::shared_ptr<std::thread> my_thread_ptr; 是任意的代码选项优于其他?或者,这并不重要,只需2种不同的方式来处理线程对象。

    1热度

    1回答

    性能我具有大的字符数组(614400)和HIGHT性能视频流应用(100FPS,10ms的1帧)。 在1帧我必须修改我的框架,并用于这8个线程。 什么是更快: 1.访问线程1中的每个元素1, e。 G。线程1(1,2,3,... N) 线程2(N + 1,N + 2,...,N * 2) ...在下一顺序 2.接入元件: 线程1(1,9 ,17 ...) 线程2(2,10,18) ... 什么方式

    2热度

    1回答

    我正在编写Thread_Guard类,如中所述中的并发程序清单2.3 - 使用RAII等待一个线程到完成。 下面是类 class Thread_Guard { thread& gThread; public: Thread_Guard() : gThread(NULL) {}; explicit Thread_Guard(thread& t1) : gThread

    1热度

    2回答

    我想在我的类/结构中创建一个线程对象,但不希望在声明过程中立即初始化。 Intead希望以后再做。因此,我做了下面的代码片段,我收到了这个编译错误。我该如何解决 ? 错误C2280: '的std ::螺纹::螺纹(常量的std ::螺纹&)':试图 引用一个已删除的功能 我观察到导致该错误的行是: std::thread t2; 这是否意味着我们不能只申报一个std ::线程没有初始化?这违背

    1热度

    1回答

    我有一个成员函数MyClass::doStuff(QString & str) 我试图调用该函数从一个线程是这样的: std::thread thr(&MyClass::doStuff, this); 然而,这会导致错误: /usr/include/c++/4.8.2/functional:1697: error: no type named ‘type’ in ‘class std::res

    1热度

    2回答

    我需要创建一个非模板类¹,需要保存一个可调用对象及其参数,以便在稍后调用它们。 由于这个类是模拟一个异步执行,我想给它的API和语义匹配std::thread/std::async的那些: class Async { public: template <typename Function, typename... Args > explicit Async(Function&

    0热度

    1回答

    我看了很多&我还不确定自己是否了解它(林木工)。 让我们假设我有一个函数: void class_test::example_1(int a, int b, char c) { //do stuff int v; int k; char z; if(condition) { std::thread thread_in_example (&class_test::ex

    2热度

    2回答

    我有下面的例子: template <typename T> class container { public: std::mutex _lock; std::set<T> _elements; void add(T element) { _elements.insert(element); } void remov

    -1热度

    2回答

    当我创建一个std :: thread实例时,它何时会被破坏?是线程完成它的任务的时间,然后它被破坏了,或者它作为一个普通对象工作,当它不再被使用时它会被破坏。 //a fake function for std::thread void func(); void main() { auto threadPtr = std::make_shared<std::thread>(fun

    7热度

    2回答

    考虑下面的情况 将名称字符串作为参数移动到线程。 void start(std::string&& name) { t = std::thread{&ThreadRunner::run, this, std::forward<std::string>(name)}; } 该线程的运行函数也需要一个右值引用。 void run(std::string&& name) {