草庐IT

thread_posixs

全部标签

c++ - Posix 线程教程

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭7年前。Improvethisquestion我正在寻找一个全面的pthread教程。我考虑购买Programmingwithposixthreads但这本书似乎有点过时了。其他在线教程,如this非常基础。有人可以推荐一个好的和完整的pthread教程。 最佳答案 劳伦斯利弗莫尔国家实验室有一个很好的教程:https://computing.ll

Unity中的异步编程【5】——在Unity中使用 C#原生的异步(Task,await,async) - System.Threading.Tasks

一、UniTask(Cysharp.Threading.Tasks)和Task(System.Threading.Tasks)的区别1、System.Threading.Tasks中的Task是.Net原生的异步和多线程包。2、UniTask(Cysharp.Threading.Tasks)是仿照.Net原生的Task,await,async开发的一个包,该包专门服务于Unity,所以取名UnityTask,简称UniTask。3、既然有Task了,为啥还要搞一个UniTask(1)Task可以用在PC和Android上,但是在WebGL上则会报错(与多线程的支持有关),你可以退而求其次,使用

c++ - 如何 std::thread sleep

我是std::thread的新手。我需要让一个线程从另一个线程进入休眠状态,这可能吗?在示例中,我看到的只是如下代码:std::this_thread::sleep_for(std::chrono::seconds(1));但我想做的是:std::threadt([]{...});t.sleep(std::chrono::seconds(1));或sleep(t,std::chrono::seconds(1));有什么想法吗? 最佳答案 因为sleep_for是同步的,它只在当前线程中才真正有意义。您想要的是一种暂停/恢复其他线程的

c++ - 如何 std::thread sleep

我是std::thread的新手。我需要让一个线程从另一个线程进入休眠状态,这可能吗?在示例中,我看到的只是如下代码:std::this_thread::sleep_for(std::chrono::seconds(1));但我想做的是:std::threadt([]{...});t.sleep(std::chrono::seconds(1));或sleep(t,std::chrono::seconds(1));有什么想法吗? 最佳答案 因为sleep_for是同步的,它只在当前线程中才真正有意义。您想要的是一种暂停/恢复其他线程的

c++ - Boost Thread - 如何确认中断

我有阻塞任务,它将由find_the_question()函数执行。但是,我不希望线程执行此函数的时间超过10秒。因此,如果需要超过10秒,我想关闭该线程并清理所有资源。我尝试为此编写代码,但是如果线程花费超过10秒,我无法在find_the_question()函数中获得中断。你能告诉我我做错了什么吗?voidfind_the_question(std::stringvalue){//allocatexresourcestry{//dosomeprocessonresourcessleep(14);//cleanresources}catch(boost::thread_interr

c++ - Boost Thread - 如何确认中断

我有阻塞任务,它将由find_the_question()函数执行。但是,我不希望线程执行此函数的时间超过10秒。因此,如果需要超过10秒,我想关闭该线程并清理所有资源。我尝试为此编写代码,但是如果线程花费超过10秒,我无法在find_the_question()函数中获得中断。你能告诉我我做错了什么吗?voidfind_the_question(std::stringvalue){//allocatexresourcestry{//dosomeprocessonresourcessleep(14);//cleanresources}catch(boost::thread_interr

c++ - boost::this_thread::sleep() 与 nanosleep()?

我最近发现需要让当前线程休眠一段确切的时间。我知道在POSIX平台上这样做的两种方法:使用nanosleep()或使用boost::this_thread::sleep()。出于好奇,我想知道这两种方法之间有什么区别。精度是否有任何差异,是否有任何理由不使用Boost方法?nanosleep()方法:#include...structtimespecsleepTime;structtimespecreturnTime;sleepTime.tv_sec=0;sleepTime.tv_nsec=1000;nanosleep(&sleepTime,&returnTime);boost方法:#

c++ - boost::this_thread::sleep() 与 nanosleep()?

我最近发现需要让当前线程休眠一段确切的时间。我知道在POSIX平台上这样做的两种方法:使用nanosleep()或使用boost::this_thread::sleep()。出于好奇,我想知道这两种方法之间有什么区别。精度是否有任何差异,是否有任何理由不使用Boost方法?nanosleep()方法:#include...structtimespecsleepTime;structtimespecreturnTime;sleepTime.tv_sec=0;sleepTime.tv_nsec=1000;nanosleep(&sleepTime,&returnTime);boost方法:#

c++ - 从 POSIX 上的 errno 和 Windows 上的 GetLastError() 构造 std::error_code

我的问题:从POSIX上的errno值和Windows上的GetLastError()构造std::error_code实例的正确方法是什么以便可以将实例与std::errc?中的知名值进行比较更长的解释:我的目标是将一个std::error_code实例添加到一个自制的异常对象中,该对象以C++11的方式在POSIX和Windows系统上工作。在我的跨平台应用程序中,我使用的是自制的I/O类层次结构,它使用POSIXfopen()和Windows的CreateFile()调用用于打开/创建文件。如果失败,则会抛出一个通用的、自制的open_error异常(它是从std::except

c++ - 从 POSIX 上的 errno 和 Windows 上的 GetLastError() 构造 std::error_code

我的问题:从POSIX上的errno值和Windows上的GetLastError()构造std::error_code实例的正确方法是什么以便可以将实例与std::errc?中的知名值进行比较更长的解释:我的目标是将一个std::error_code实例添加到一个自制的异常对象中,该对象以C++11的方式在POSIX和Windows系统上工作。在我的跨平台应用程序中,我使用的是自制的I/O类层次结构,它使用POSIXfopen()和Windows的CreateFile()调用用于打开/创建文件。如果失败,则会抛出一个通用的、自制的open_error异常(它是从std::except