当前位置: 首页 > news >正文

沈阳制作公司网站最好用的免费建站平台

沈阳制作公司网站,最好用的免费建站平台,网站可以用什么语言开发做,国家建设局网站简介 进程和线程的区别 进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。 线程:进程中的一个执行任务&#xff08…

简介

进程和线程的区别
进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。
线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。
与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。更多

std::thread就是C++11为开发者提供的线程类。他表示一个线程,一般在构造的时候,就会启动他的线程方法。线程方法的返回值会被忽略,一般通过std::promise或者共享变量来获取。如果线程方法抛出了一场,没有被处理的话,std::terminate就会被调用。

头文件

#include <thread>

API

构造方法

thread() noexcept;	// 默认构造方法
thread( const thread& ) = delete;   // 禁用拷贝构造方法
thread( thread&& other ) noexcept;	// 移动构造方法,暗示着一个thread对象只能表示一个线程,不与其他thread对象共享// f:可调用对象;args:f的参数;如果开调用对象无法正常起启动,就会抛出异常[std::system_error](https://en.cppreference.com/w/cpp/error/system_error)
// args是采用移动或者以值的方法传递f,如果想采用引用方式需要用std::ref或者std::cref包装一下
template< class Function, class... Args >
explicit thread( Function&& f, Args&&... args );	

例子:https://en.cppreference.com/w/cpp/thread/thread/thread

析构方法

~thread();	// 如果当前thread对象依然关联着线程,即joinable() == true, 那么就会调用std::terminate()被调用

移动赋值操作符

thread& operator=( thread&& other ) noexcept;	// 如果当前thread对象依然关联着线程,即joinable() == true, 那么就会调用std::terminate()被调用

成员方法

  • 判断thread是否关联着一个有效线程,如果thread被移动、销毁了,或者调用thread默认构造方法构造的对象,那么该方法就返回false
bool joinable() const noexcept;
  • 获取线程id
std::thread::id get_id() const noexcept;   // 线程的唯一标识

std::thread:id是一个类,一般常用的方法有:operator==, operator<<。另外有一个特化的hash仿函数:template<> struct hashstd::thread::id; hash参考代码

  • 获取thread对象关联的线程句柄,一般与pthread_getschedparam,pthread_setschedparam配合使用,可以设置线程的优先级。
    更多参考
native_handle_type native_handle();
  • 获取硬件支持的最大线程数,他是thread的静态方法
static unsigned int hardware_concurrency() noexcept;
  • 等待线程函数执行结束,他会阻塞当前线程。可能会抛出std::system_error异常
void join();
  • 分离线程与thread对象,即thread对象不在管理该线程,joinable方法会返回false,调用join方法会抛出异常。当线程方法执行结束的时候,相关资源才会被释放。可能会抛出std::system_error异常
void detach();
  • 交换两个thread对象关联的线程
void swap( std::thread& other ) noexcept;

在线尝试thread

http://www.shuangfujiaoyu.com/news/22313.html

相关文章:

  • 政府门户网站建设策划怎么优化一个网站
  • 找人做个网站需要多少钱网站设计需要什么
  • google网站怎么做流量百度文库网页版登录入口
  • 做医疗网站需要百度seo关键词排名查询
  • 无锡响应式网站建设教育培训网站
  • 网站运营名词解释建一个外贸独立站大约多少钱
  • 个人建设门户网站 如何备案合肥网站制作
  • 月夜影院网站自然排名怎么优化
  • 沧州高端网站建设杭州seo整站优化
  • 苏州设计网站建设域名查询工具
  • 合肥哪家公司做网站网站快速排名优化
  • 套模板的网站多少钱seo关键词排名怎么提升
  • 做污事网站郑州seo优化顾问热狗
  • 众筹那些网站可以做网站排名优化软件联系方式
  • 中企网站建设站长工具查询网站信息
  • 怎么做网站的内链国际新闻网
  • 做英文网站要请什么样的人做淘宝关键词怎么选取
  • 网站开发语言在那看出来济南做网站公司哪家好
  • 合肥百度 网站建设最近国际新闻大事20条
  • 如何修改asp网站网络推广100种方式
  • 山河建设有限公司网站防疫管控优化措施
  • 郑州网站制作工作室环球资源网站网址
  • 做食品行业网站短视频推广策略
  • 网站设置的参数重庆seo技术教程博客
  • 做网站编辑是不是也要做推广推广优化seo
  • 网站建设 js抖音推广引流平台
  • 芸志建站怎么建立网站网站建设维护
  • wordpress伟静态青岛seo博客
  • 开发网站教程互联网营销师报考条件
  • 西安百度竞价托管seo网站分析工具