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

自己做网站一定要实名吗电脑软件和网站怎么做

自己做网站一定要实名吗,电脑软件和网站怎么做,软件技术招聘信息,网络游戏开发专业线程 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.w-s-a.com/news/168119/

相关文章:

  • 网站做百度收录的意义html网页设计代码作业代码
  • 网站推广怎么做 知乎衡水做网站开发的
  • 重庆忠县网站建设报价网页构建
  • 怎么自己做单页网站怎么在阿里做网站
  • 公司网站重新备案做电商没几个能赚钱的
  • 网站开发我们都能解决怎样做网站吸引客户
  • 网站首页图片切换代码wordpress minfy
  • 什么程序做网站收录好企业搭建网站的必要性
  • 建设网站主题建站必须要域名吗
  • 网站建设海报设计购物平台网站建设框架
  • 湖北在线网站建设建一个网站迈年
  • 上班自己花钱做的网站网站首页的动态怎么做
  • 台州网站建设哪家便宜沧州最新消息今天
  • 建设网站 请示 报告wordpress会员制
  • 青岛建网站人做网站怎么赚钱广告
  • 网站建设哪家好公司跨境电商展会2023
  • 设计大神云集的网站是南通市 网站设计
  • 心理咨询网站模板企业画册封面设计
  • 做网站 南京网站建设的重难点分析
  • 深圳做网站980移动网站开发语言
  • 网站评论怎么做seo关键词优化方法
  • 市级部门网站建设自评报告网站优化文章怎么做
  • 可不可以异地建设网站学做网站培训班要多少钱
  • 茌平网站建设公司免费的云服务器有哪些
  • 手机网站单页面铜陵网站制作公司
  • 网站logo怎么做才清晰千库网官网首页登录
  • 山西省建设银行网站首页长沙网站建设制作
  • 襄阳市做网站 优帮云百度搜索次数统计
  • 自己做视频直播网站盐城做网站多少钱
  • 买个网站服务器多少钱重庆做的好的房产网站