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

dede手机网站模板购物网站页面设计思路

dede手机网站模板,购物网站页面设计思路,seo平台是什么意思,云南营销网站建设目录 前言 一、线程基础 1.概念 2.一个进程中多个线程特征 2.1 线程共有资源 2.2 线程私有资源 3.线程相关的api函数 3.1 创建线程 创建线程实例代码如下#xff1a; 需要特别注意的是#xff1a; -lpthread和-pthread的区别 3.2 给线程函数传参 传参实例代码如… 目录 前言 一、线程基础 1.概念 2.一个进程中多个线程特征 2.1 线程共有资源 2.2 线程私有资源   3.线程相关的api函数 3.1 创建线程 创建线程实例代码如下 需要特别注意的是 -lpthread和-pthread的区别 3.2 给线程函数传参   传参实例代码如下 3.3 给线程收尸 收尸实例代码如下  二、线程状态转换函数说明 1.初始化条件休眠 2.条件休眠挂起线程  3.唤醒线程  4.设置取消状态  5.设置取消方式 6.取消线程  三 、线程状态转换图片如图清晰可见 总结 前言 线程指的是在一个进程中独立执行的最小单位。简单来说线程是进程中的一个执行流可以理解为执行程序的一条执行路径。本篇文章将对线程进行超详细讲解。 一、线程基础 1.概念 1线程在进程空间中执行也是一个动态的过程。 2一个进程对应一个程序一个线程对应程序中的一个函数 3线程是该函数的一次在执行过程该函数称为线程函数。 2.一个进程中多个线程特征 2.1 线程共有资源 1可执行的指令(.text) 2静态数据(.data/.bss/.heap) 3进程中打开的文件描述符 4信号处理函数 5当前工作目录 6用户ID 7用户组ID 2.2 线程私有资源   1线程ID (TID) 2PC(程序计数器)和相关寄存器 3堆栈 4局部变量 5返回地址 6错误号 (errno) 7信号掩码和优先级 8执行状态和属性 3.线程相关的api函数 3.1 创建线程 头文件 #include pthread.h Compile and link with -pthread. int pthread_create(pthread_t *thread, const pthread_attr_t *attr,                           void *(*start_routine) (void *), void *arg); //参数1 ----- 保存线程id的变量的地址 //参数2 ----- 线程属性一般为NULL表示使用默认属性 //参数3 ----- 线程函数指针必须是下面的格式              void * xxx_fun (void * arg)              {                      线程执行代码              } //参数4  ----- 传给线程函数的参数 //返回值 ---- 成功0 失败错误码 创建线程实例代码如下 #include stdio.h #include unistd.h #include pthread.hvoid* fun(void* arg) {int i;for(i 0; i 7; i){printf(我是fun\n);sleep(1);}return 0; }int main(void) {int i;pthread_t tid;//fun();if(pthread_create(tid,NULL,fun,NULL)){perror(pthread_create);exit(1);}for(i 0; i 7; i){printf(我是主函数\n);sleep(1);}return 0; } 需要特别注意的是 编译时需要链接线程库 gcc pthread_create.c -o pthread_create  -lpthread -lpthread和-pthread的区别 两个选项都是用于链接 pthread 库的选项但它们有一些细微的差别。 -lpthread 是告诉链接器去链接 pthread 库这是一个标准的链接选项可以用于链接任何库。 -pthread 是告诉编译器在编译时需要使用 pthread 库这是一个非标准的编译选项只能在支持它的编译器上使用。 在大多数情况下使用 -lpthread 是更好的选择因为它是标准的链接选项可以在不同的编译器和操作系统上使用。而 -pthread 只能在支持它的编译器上使用。 3.2 给线程函数传参   传参实例代码如下 #include stdio.h #include stdlib.h #include unistd.h #include pthread.htypedef struct{int sno;char name[20];float score; }St;void* fun(void* arg) {St *p (St*)arg;//printf(%d\n,*(int*)arg);//printf(%s\n,(char*)arg);printf(%d %s %.2f\n,p-sno,p-name,p-score);return 0; }int main(void) {pthread_t tid;//int a 120;//char str[] hello world;St s {1001,peter,98.56};if(pthread_create(tid,NULL,fun,s)){perror(pthread_create);exit(1);}sleep(1);return 0; } 3.3 给线程收尸 int pthread_join(pthread_t thread, void **retval); //参数1 ---- 线程的id //参数2 ---- 保存线程返回值的指针变量的地址 //返回值 ---- 成功0失败错误码 收尸实例代码如下  #include stdio.h #include stdlib.h #include unistd.h #include pthread.htypedef struct{int sno;char name[20];float score; }St;void* fun(void* arg) {static int a 112200;St *p (St*)arg;//printf(%d\n,*(int*)arg);//printf(%s\n,(char*)arg);printf(%d %s %.2f\n,p-sno,p-name,p-score);return a; }int main(void) {pthread_t tid;int *p;//int a 120;//char str[] hello world;St s {1001,peter,98.56};//创建子线程if(pthread_create(tid,NULL,fun,s)){perror(pthread_create);exit(1);}//给指定线程收尸如果子线程没有结束则主线程阻塞//if(pthread_join(tid,NULL)){if(pthread_join(tid,(void**)p)){perror(pthread_join);exit(1);}printf(*p %d\n,*p);return 0; }二、线程状态转换函数说明 1.初始化条件休眠 头文件#include pthread.h int pthread_cond_init (pthread_cond_t * __cond,const pthread_condattr_t * __cond_attr)  * 功能初始化条件休眠  * 参数     pthread_cond_t * __cond - 指向被初始化的条件变量     const pthread_condattr_t * __cond_attr- 指向条件变量的属性使用默认值NULL  * 返回值     失败负数绝对值是错误码 2.条件休眠挂起线程  头文件#include pthread.h int pthread_cond_wait (pthread_cond_t * __cond, pthread_mutex_t *__mutex);  * 功能条件休眠挂起线程调用该函数的线程被阻塞了函数不返回且休眠状态  * 参数     pthread_cond_t * __cond - 指向条件变量     pthread_mutex_t *__mutex- 指向互斥锁  * 返回值     失败负数绝对值是错误码 3.唤醒线程  头文件#include pthread.h int pthread_cond_signal (pthread_cond_t *__cond);  * 功能唤醒线程调用该函数的唤醒被pthread_cond_wait阻塞的线程  * 参数     pthread_cond_t * __cond - 指向条件变量  * 返回值     失败负数绝对值是错误码 4.设置取消状态  头文件#include pthread.h int pthread_setcancelstate (int __state, int *__oldstate);  * 功能设置取消状态  * 参数     int __state    - 使能还不使能             使能取消线程PTHREAD_CANCEL_ENABLE     int *__oldstate- 保存老状态  * 返回值     失败 - 负数绝对值是错误码 5.设置取消方式 头文件#include pthread.h int pthread_setcanceltype (int __type, int *__oldtype);  * 功能设置取消方式  * 参数     int __type    - 取消方式             PTHREAD_CANCEL_ASYNCHRONOUS - 异步取消             PTHREAD_CANCEL_DEFERRED - 取消延迟     int *__oldtype- 保存老方式  * 返回值     失败 - 负数绝对值是错误码 6.取消线程  头文件#include pthread.h  int pthread_cancel (pthread_t __th); /*  * 功能取消线程  * 参数     pthread_t __th - 线程ID  * 返回值     失败 - 负数绝对值是错误码 三 、线程状态转换图片如图清晰可见 总结 本篇文章针对C/C 线程进行详细讲解希望能够帮到大家 以后还会给大家展现更多关于嵌入式和C语言的其他重要的基础知识感谢大家支持懒大王 希望这篇博客能给各位朋友们带来帮助最后懒大王请来过的朋友们留下你们宝贵的三连以及关注感谢你们
http://www.yutouwan.com/news/55863/

相关文章:

  • 什么是网站交互性30分钟网站建设教程视频
  • 给别人做网站打电话推销外贸流程实训报告
  • 网站建设功能要求有没有专门做中考卷子的网站
  • 网站建设业务开展方案中式风格装修效果图
  • 盘锦做网站电话网站开发自学时间
  • 上海网站建设设计制作横栏建设网站
  • 怎样创建企业网站网站头部导航样式
  • 网站建设需要提供功能目录吗软件前端开发
  • 网站开发需要那些技术人员大兴区制作网站的公司
  • 建设网站需要什么技术支持沈阳网站制作机构
  • 西红柿怎么做网站wordpress 安装中文字体
  • 电商企业网站建设方案网站建设网站制作价格
  • wordpress cms杭州seo公司服务
  • 网站 mssql 数据库app开发需求
  • 贵州住房和城乡建设部网站济南建设设备安装有限责任公司官网
  • wix做中文网站怎么样做网站需要提交
  • 星月网络公司做的网站深圳手机端网站建设设计公司
  • 建设网站需要哪些素材网站图片翻页怎么做
  • 友情链接地址电影网站如何优化
  • 偃师 做网站外贸网站怎样做
  • 内蒙古网站建设流程检察机关门户网站建设
  • 网站建设面试题装饰工程有限公司
  • 网站建设套餐方案电商网站开发 知乎
  • 泉州英文网站建设网站建设玖首选金手指
  • 网站备案有什么用广州开发区医院
  • 加油站建设专业网站设计站
  • 做外贸soho网站的公司一般营销方式三大步骤
  • 哈尔滨松北区建设局网站wordpress换行命令
  • 做视频网站注意什么软件网站的优化承诺
  • 绍兴以往网站招工做打开qq邮箱进入wordpress