草庐IT

threading

全部标签

C++11 std::threads vs posix 线程

为什么在实践中我应该更喜欢其中一种?除了std::thread是一个类之外,还有哪些技术差异? 最佳答案 如果您想在多个平台上运行代码,请选择PosixThreads。它们几乎随处可见,并且非常成熟。另一方面,如果你只使用Linux/gccstd::thread非常好-它具有更高的抽象级别、非常好的接口(interface)并且可以与其他C++11类很好地配合。C++11std::thread不幸的是,即使C++11似乎可用,类也不能在每个平台上可靠地(还)工作。例如在原生Androidstd::thread或Win64它只是无法正

java - 使用 Thread.sleep(x) 或 wait() 时出现异常

我试图延迟或进入休眠状态我的Java程序,但出现错误。我无法使用Thread.sleep(x)或wait()。出现同样的错误信息:unreportedexceptionjava.lang.InterruptedException;mustbecaughtordeclaredtobethrown.在使用Thread.sleep()或wait()方法之前是否需要执行任何步骤? 最佳答案 你有很多阅读要做。从编译器错误到异常处理、线程和线程中断。但这会做你想做的事:try{Thread.sleep(1000);//1000millisec

c++ - 如何在 llvm-ir 中模拟 thread_local?

以下代码目前在lli中不起作用://main.cppexternthread_localinttls;intmain(){tls=42;return0;}//clang++-S-emit-llvmmain.cpp&&llimain.llllvm-ir:;ModuleID='main.cpp'targetdatalayout="e-m:e-i64:64-f80:128-n8:16:32:64-S128"targettriple="x86_64-pc-linux-gnu"@tls=externalthread_localglobali32,align4;FunctionAttrs:nore

c++ - 如何在 llvm-ir 中模拟 thread_local?

以下代码目前在lli中不起作用://main.cppexternthread_localinttls;intmain(){tls=42;return0;}//clang++-S-emit-llvmmain.cpp&&llimain.llllvm-ir:;ModuleID='main.cpp'targetdatalayout="e-m:e-i64:64-f80:128-n8:16:32:64-S128"targettriple="x86_64-pc-linux-gnu"@tls=externalthread_localglobali32,align4;FunctionAttrs:nore

Ruby 2 : Forks/Threads, 如何计算特定机器的效率?

假设我有一block带4个CPU的主板。根据英特尔的说法,每个CPU都有8个内核/16个线程。现在,假设我有一些疯狂的字符串操作任务需要几天才能完成。有没有一种方法可以计算多少个fork和线程会产生最佳性能?我不确定应该启动多少个fork和线程。另外,我不确定启动话题是否对我有好处?我对Ruby特别感兴趣,因为我不确定Ruby2线程与其他线程相比如何。C++线程。 最佳答案 经验法则:每个CPU线程有1个进程或操作系统线程。对于Ruby,至少是MRIRuby,这转化为每个CPU线程1个fork,因为MRIRuby线程不能真正并行执行

ruby 无法从 Thread.abort_on_exception 中拯救或看到中止

我需要立即捕获线程中的异常并停止所有线程,因此我在我的脚本中使用了abort_on_exception。不幸的是,这意味着不会向父线程引发异常-也许这是因为异常最终发生在全局范围内??无论如何,这是一个显示问题的示例:Thread.abort_on_exception=truebegint=Thread.new{puts"Startthread"raisesaveMeputs"Neverhere.."}t.joinrescue=>eputs"RESCUE:#{e}"ensureputs"ENSURE"end如何挽救使用abort_on_exception时线程中引发的异常?这是一个新的

c++ - C++ 11中的boost::thread_group?

C++11中有没有类似boost::thread_group的东西?我只是试图将我的程序从使用boost:thread移植到C++11线程,但找不到任何等效的东西。 最佳答案 不,没有什么直接等同于boost::thread_group在C++11中。您可以使用std::vector如果你想要的只是一个容器。然后您可以使用新的for语法或std::for_each调用join()在每个元素上,或其他任何东西上。 关于c++-C++11中的boost::thread_group?,我们在S

c++ - C++ 11中的boost::thread_group?

C++11中有没有类似boost::thread_group的东西?我只是试图将我的程序从使用boost:thread移植到C++11线程,但找不到任何等效的东西。 最佳答案 不,没有什么直接等同于boost::thread_group在C++11中。您可以使用std::vector如果你想要的只是一个容器。然后您可以使用新的for语法或std::for_each调用join()在每个元素上,或其他任何东西上。 关于c++-C++11中的boost::thread_group?,我们在S

ruby-on-rails - Rails Edge/4 错误 `require' : cannot load such file -- thread_safe

按照此处的说明让应用程序在RailsEdge之外运行以测试Rails4:WhatisthebestwaytogenerateaRailsappusingedge?和HowtocreateEdgerailsapplication?但是遇到这个错误:`require':cannotloadsuchfile--thread_safe(LoadError)使用命令:railsnewEdge--edge--skip-bundle--database=postgresql--skip-test-unit--skip-index-html我正在检查Railsmasterbin目录。我将rbenv与r

ruby-on-rails - 在 Rails 的 API 包装器中使用 Thread.current 的替代方法

我开发了一个应用程序,允许我们的客户创建他们自己的成员(member)保护网站。然后,我的应用程序连接到外部API服务(客户特定的api_key/api_url)以将数据同步/更新/添加到该其他服务。好吧,我已经为到目前为止一直有效的其他服务编写了一个API包装器。但是,我现在看到连接为零的情况非常随机。这是我目前使用连接的方式:我有一个xml/rpc连接类classApiConnectionattr_accessor:api_url,:api_key,:retry_countdefinitialize(url,key)@api_url=url@api_key=key@retry_co