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

海南网站建设监理公司网站制作需要找广告公司么

海南网站建设监理,公司网站制作需要找广告公司么,后台去掉 wordpress新闻,上海做网站哪个好朋友们、伙计们#xff0c;我们又见面了#xff0c;本期来给大家带来线程控制相关代码和知识点#xff0c;如果看完之后对你有一定的启发#xff0c;那么请留下你的三连#xff0c;祝大家心想事成#xff01; C 语 言 专 栏#xff1a;C语言#xff1a;从入门到精通 数… 朋友们、伙计们我们又见面了本期来给大家带来线程控制相关代码和知识点如果看完之后对你有一定的启发那么请留下你的三连祝大家心想事成 C 语 言 专 栏C语言从入门到精通 数据结构专栏数据结构 个  人  主  页 stackY、 C 专 栏   C Linux 专 栏  Linux 目录 1. 创建线程 1.1 引入线程库 2. 获取线程id  3. 线程终止  4. 线程等待  5. 线程的分离  6. 线程的取消 1. 创建线程 在使用线程有关函数接口时需要引入头文件pthread.h 创建一个新的线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void * (*start_routine)(void*), void *arg); 参数  thread返回新线程ID attr设置线程的属性attr为NULL表示使用默认属性 start_routine是个函数地址线程启动后要执行的函数 arg传给线程启动函数的参数  返回值 成功返回0失败返回错误码。 代码演示  #include iostream #include unistd.h #include pthread.h #include sys/types.h #include unistd.h// 新线程 void *ThreadRoutine(void *arg) {const char *threadname (const char *)arg;while (true){std::cout I am a new thread: threadname , pid: getpid() std::endl;sleep(1);} }int main() {pthread_t tid;// 创建线程pthread_create(tid, nullptr, ThreadRoutine, (void *)thread 1);// 主线程while (true){std::cout I am main thread , pid: getpid() std::endl;sleep(1);}return 0; } 1.1 引入线程库 当我们直接编译时可以发现报错明明已经引入了线程相关的头文件为什么还会找不到该函数呢 因为Linux没有真正的线程只有轻量级进程的概念所以Linux OS只会提供轻量级进程创建的系统调用不会直接提供线程的创建的接口Linux的线程是通过pthread原生线程库实现的所以我们需要在编译选项中引入线程库 Makefile testThread:testThread.ccg -o $ $^ -stdc11 -lpthread .PHONY:clean clean:rm -f testThread 引入线程库之后再编译就不会出现报错了。 2. 获取线程id  获取自己的线程id pthread_t pthread_self(void); 哪个线程调用该函数就可以返回哪个线程的id。 当我们将线程id获取并打印之后可以发现线程id和线程的LWP毫无关系并且线程id是一个比较大的数 如果我们将这个id以十六进制的格式打印就会发现线程的id本质上就是一个地址 3. 线程终止  线程终止一共有三种方法 ① 直接在新线程中返回② 使用pthread_exit函数③ 使用pthread_cancel函数线程的取消。 线程终止可以直接在新线程中返回即可还可以通过函数接口的方式进行终止 void pthread_exit(void *retval); 注意不能使用exit来终止线程这样会使整个进程退出。 参数 retval可以设为空也可以设置退出信息 4. 线程等待  线程和进程一样也是需要进行等待的如果不等待就会发生和僵尸进程一样的情况线程退出但是它的空间没有被释放并且我们也会需要知道线程的退出信息所以就需要有等待线程的接口。 int pthread_join(pthread_t thread, void **retval);参数 thread要等待的线程ID retval它指向一个指针后者指向线程的返回值获取退出信息也可以设为空 返回值 成功返回0失败返回错误码 代码演示  获取返回值信息和线程终止接口配合使用 // 新线程 void *ThreadRoutine(void *arg) {int cnt 1;const char *threadname (const char *)arg;while (true){pthread_t id;// 获取线程idid pthread_self();std::cout I am a new thread: threadname my id: ToHex(id) std::endl;sleep(1);if(cnt 5){// 线程退出并带上退出信息pthread_exit((void *)success);}cnt;} }int main() {pthread_t tid;// 创建线程pthread_create(tid, nullptr, ThreadRoutine, (void *)thread 1);// 主线程// 等待新线程并获取退出信息void * message nullptr;int n pthread_join(tid, message);std::cout Exit information for the new thread: (char *)message , n std::endl;return 0; } 5. 线程的分离  我们创建的新线程默认是joinable的线程退出之后是需要进行pthread_join()操作的否则无法释放资源当我们进行pthread_join()操作时如果线程不退出那么就会一直阻塞住直到线程退出如果我们不关心线程的返回值并且在等待线程时也是一种负担所以这个时候就可以将线程设置为分离状态即在线程退出的时候自动释放线程的资源设置为分离状态的可以是线程组内其他线程对目标线程进行分离也可以是线程自己分离joinable和分离是冲突的一个线程不能既是joinable又是分离的。 分离指定的线程 int pthread_detach(pthread_t thread);   6. 线程的取消 取消一个执行中的线程 int pthread_cancel(pthread_t thread); 线程如果被分离是可以进行取消的但是不能被等待 朋友们、伙计们美好的时光总是短暂的我们本期的的分享就到此结束欲知后事如何请听下回分解~最后看完别忘了留下你们弥足珍贵的三连喔感谢大家的支持
http://www.w-s-a.com/news/471206/

相关文章:

  • 顺德网站建设市场建设工程交易中心网站
  • 深圳企业网站怎么做浪琴手表网站建设图
  • 2018网站外链怎么做济南 网站设计公司
  • 承德百度网站建设郑州网站seo优化公司
  • 四川建站模板网站公司分类信息网站制作
  • 网站开发前后端有wordpress模板安装教程视频教程
  • 有网站想修改里面的内容怎么做怎么做黑彩黑彩网站
  • 什么专业会做网站网站建设续费合同
  • 网站开发的项目开发网站做直播功能需要注册吗
  • 网站开发新手什么软件好网站设计师和ui设计师
  • 太仓苏州网站建设软件开发网站建设
  • 一个虚拟主机做2个网站吗工信部怎么查网站备案
  • 本地网站做淘宝客制作app步骤
  • 关于企业网站建设网页布局怎么设计
  • 惠州市网站设计公司裴东莞嘘网站汉建设
  • 长葛网站建站电子商务网站是什么
  • 泉做网站的公司太原网站建设开发公司
  • wordpress菜单栏的函数调用迅速上排名网站优化
  • 网站深圳广西模板厂哪家价格低
  • 搜索网站显示网页无法访问最好的网站推广
  • 巴彦淖尔市百家姓网站建设搬瓦工暗转wordpress
  • 温州鹿城区企业网站搭建云虚拟机
  • 网站的开发方法php网站商城源码
  • 旅游找什么网站好维护公司网站建设
  • 长春市长春网站制作站优化杭州企业推广网站
  • 网站建设开发设计营销公司山东网信办抓好网站建设
  • 斗图在线制作网站搜索关键词优化
  • 大连 网站建设 有限公司十大erp系统
  • 网站后台建设软件网络营销公司招聘
  • 做网站销售电销好做吗网站开发毕业设计代做