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

青岛快速建站模板wordpress live2d插件

青岛快速建站模板,wordpress live2d插件,六 网站建设方案.,网站建设的基本要素线程 1.线程的概念: 线程是进程中的⼀个执行单元#xff0c;负责当前进程中程序的执行#xff0c;⼀个进程中至少有⼀个线程 ⼀个进程中是可以有多个线程 多个线程共享同一个进程的资源#xff0c;每个线程参与操作系统的统一调度 可以简单理解#xff1a; 进程 进程资源…线程 1.线程的概念: 线程是进程中的⼀个执行单元负责当前进程中程序的执行⼀个进程中至少有⼀个线程 ⼀个进程中是可以有多个线程 多个线程共享同一个进程的资源每个线程参与操作系统的统一调度 可以简单理解 进程 进程资源 主线程 子线程… 2.线程与进程 线程与进程区别: 内存空间 一个进程中多个线程共享一个内存空间多个进程拥有独立的内存空间 进程/线程间通讯: 线程间通讯方式简单线程间通讯方式复杂 并发操作线程比进程更节约资源 总结: 联系紧密的任务在并发时优先选择多线程如果任务之间比较独立在并发时建议选择多进程。 3.线程资源 共享进程的资源: 同一块地址空间文件描述符表每种信号的处理方式如:SIG_DFL,SIG_IGCN或者自定义 的信号优先级当前工作目录用户id和组id 独立的资源 线程栈每个线程都有私有的上下文信息线程ID寄存器的值errno变量信号屏蔽以及调度优先级 4 .线程相关的命令 在 Linux 系统有很多命令可以查看进程例如 pidstat 、top 、ps 也可以查看一个进程下的线程 一、pidstat ubuntu下安装 sysstat工具后可以支持 pidstat sudo apt install sysstat 选项 -t:显示指定进程所关联的线程 -p:指定进程pid示例使用 pidstat 命令查看某一个进程下的线程 step 1 : 运行 sem 程序,此程序包含两个进程 step 2 : 查看 sem进程所对应的 idstep 3 : 使用 pidstat 命令查看相应进程的线程 可以看到当前这个进程包含1个线程只有3027 主线程 二、top 命令 top 命令查看某一个进程下的线程需要用到 -H 选项在结合 -p 指定 pid 示例使用 top 命令查看某一个进程下的线程 top -H -p 3027 三、ps命令 ps 命令结合 -T 选项就可以查看某个进程下所有线程 5 . 创造线程 创建线程调用 pthread_create 函数 1.函数头文件 #include pthread.h 2.函数原型 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg); 3.函数功能 创建一个子线程 4.函数参数 thread:线程ID变量指针 attr:线程属性,默认属性可设置为NULL start_routine:线程执行函数 arg:线程执行函数的参数 5.函数返回值 成功:返回 0 失败:返回 错误码Tips typedef unsigned long int pthread_t;一旦子线程创建成功则会被独立调度执行并且与其他线程并发执行在编译时需要链接 -lpthread[Compile and link with -pthread] 问题 在编译时出现下面的错误 implicit declaration of function ‘pthread_create’ 解决办法pthread库不是Linux系统默认的库编译的时候需要加上库 -lpthread 2.2. 程序执行的结果中只打印了 tid,子线程没有执行 原因是子线程还没有来得及执行主线程已经结束导致其他子线程都必须结束 解决办法保证主线程不先于子线程结束 6.线程的等待、退出和分离 一、线程退出 线程退出使用 pthread_exit 函数 函数头文件 #include pthread.h 函数原型 void pthread_exit(void *retval); 函数功能 让线程退出,并返回值 函数参数 retval:线程返回值,通过指针传递 函数返回值 成功:返回 0 失败:返回 -1Tips: 当主线程调用pthread_exit函数时进程不会结束也不会导致其他子线程退出任何线程调用exit函数会让进程结束 二、线程等待 主线程需要等待子线程退出并释放子线程资源 线程等待调用 pthread_join函数会阻塞调用线程 1.函数头文件 #include pthread.h 2.函数原型 int pthread_join(pthread_t thread, void **retval); 3.函数功能 等待子线程退出,并释放子线程资源 4.函数参数 thread:线程 ID retval:获取线程退出值的指针 5.函数返回值 成功:返回0 失败:返回错误码三、线程分离 线程分为可结合的与可分离的 可结合 可结合的线程能够被其他线程收回其资源和杀死在被其他线程回收之前它的存储器资源如栈是不释放的。线程创建的默认状态为可结合的可以由其他线程调用 pthread_join函数等待子线程退出并 释放相关资源 可分离 不能被其他线程回收或者杀死的该线程的资源在它终止时由系统来释放。 线程分离调用 pthread_detach 函数 注意线程分离函数不会阻塞线程的执行 1.函数头文件 #include pthread.h 2.函数原型 int pthread_detach(pthread_t thread); 3.函数功能 设置在线程退出后由操作系统自动释放该线程的资源 4.函数参数 thread:线程ID 5.函数返回值 成功:返回0 失败:返回-17.示例: 创造两个线程并使线程分离: #include stdio.h #include stdlib.h #include string.h #include pthread.h // 线程执行函数 void* do_thread_function(void* args) {printf(do thread ....\n);pthread_exit(NULL); } int main() {pthread_t thread_id_a,thread_id_b;int result pthread_create(thread_id_a,NULL,do_thread_function,NULL);if(result!0){fprintf(stderr,pthread error:%s\n,strerror(result));exit(EXIT_FAILURE);}printf(threadA id is %ld\n,thread_id_a);pthread_detach(thread_id_a);result pthread_create(thread_id_b,NULL,do_thread_function,NULL);if(result!0){fprintf(stderr,pthread error:%s\n,strerror(result));exit(EXIT_FAILURE); }printf(threadB id is %ld\n,thread_id_b);pthread_detach(thread_id_b);while(1);return 0; }
http://www.ho-use.cn/article/10819956.html

相关文章:

  • 黄村做网站的公司烟台网站制作步骤
  • 郑州 高端网站建设网站忘记备案
  • 制作网站的公司做网站去哪里找做专业课视频课的网站
  • 莱芜正规的企业建站公司腾讯企业邮箱版
  • 东莞网站搜索排名apache fastcgi wordpress
  • 此网站服务器不在国内维护怎么通过微博做网站外链
  • 雄安微网站开发网站建设公司转型做什
  • 网站运营与建设作业设计方案ppt模板
  • 电商类网站模板下载个人wordpress 手机
  • 什么是网站流量优化vs和sql做购物网站
  • 做网站用什么主机好制作网页常见的布局方法有
  • 网站设计深圳要联系方式吗?惠安网站建设价格
  • 网络规划设计师多少分通过seo公司发展前景
  • 哪个网站可以做社工试题做网站有2个前提条件 一个是网站
  • 在百度云上做网站建设部网站从哪登陆
  • 推广网站的文案海南在线直播
  • 网站建设預算google官网入口
  • 南充北京网站建设深圳大型互联网公司
  • 济南市住建局官方网站网址安全检测中心
  • 舵落口网站建设wordpress动态行情页面
  • 做网站需要租服务器吗wordpress主题如何使用
  • 源码分享网站网站制作结算确认函
  • 自己做的网站验证码出不来怎么回事素材网站怎么推广
  • 怎么样搭建qq号网站做网站没有高清图片怎么办
  • 展示型网站解决方案福建网站建设费用
  • 美食烹饪网站策划书做简历的网站叫什么软件
  • 个人做的小网站需要备案公司网站建设的意义方案
  • 如何建设个人网站凡科怎么样Vantage wordpress主题
  • 中国建设银行网站-诚聘英才网站的页面
  • 如何优化网站关键词厂字形网页布局网站