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

南昌哪里做网站自己建网站做推广

南昌哪里做网站,自己建网站做推广,wordpress博客优点,网店推广软件有哪些文章目录 一、使用C代码创建线程示例API 二、线程的相关知识2.1 线程 与 进程 的关系2.2 使用线程的理由 一、使用C代码创建线程 使用pthread_create函数创建线程。 示例 示例#xff1a;创建一个线程#xff0c;其作用就是打印线程ID和传入参数。 //demo1 #include … 文章目录 一、使用C代码创建线程示例API 二、线程的相关知识2.1 线程 与 进程 的关系2.2 使用线程的理由 一、使用C代码创建线程 使用pthread_create函数创建线程。 示例 示例创建一个线程其作用就是打印线程ID和传入参数。 //demo1 #include stdio.h #include pthread.hvoid* fun1(void *arg) {printf(t1%ld thread is create\n, (unsigned long)pthread_self());//pthread_self()打印线程IDprintf(t1: %d\n, *((int*)arg));//函数执行结束会默认调用 pthread_exit }int main() {//int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg);int ret;int param 100;pthread_t t1;//1.创建线程// 线程属性 线程函数 线程函数参数ret pthread_create(t1, NULL, fun1, (void*)param);if(ret 0){printf(main:create t1 success\n);} else {perror(why t1 fail);}printf(main:%ld\n, (unsigned long)pthread_self());//打印主线程ID//2.等待线程pthread_join(t1, NULL);//等待线程结束防止进程结束线程还未执行完毕return 0; }API #include pthread.h int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg); // 返回若成功返回0否则返回错误编号当pthread_create成功则返回0函数参数 由 tidp 指向的内存单元被设置为新创建线程的线程ID。attr 参数用于定制各种不同的线程属性暂可以把它设置为 NULL以创建默认属性的线程。(工作中也多用NULL)新创建的线程从 start_rtn函数指针函数的地址开始运行该函数只有一个无类型指针参数 arg。如果需要向 start_rtn 函数传递的参数不止一个那么需要把这些参数放到一个结构中然后把这个结构的地址作为 arg 参数传入。 pthread_join函数的作用是等待效果上看是等待线程的执行过程只有线程执行完毕才会继续执行下去。可以在fun1函数最后添加while1的死循环来验证程序不会退出因为线程一直卡在循环处。感兴趣可以多创建一个t2线程来体验pthread_join函数的作用一个函数中不带死循环一个函数中带死循环都使用pthread_join函数进行等待。 二、线程的相关知识 2.1 线程 与 进程 的关系 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中是进程中的实际运作单位。一条进程指的是一个单一顺序的控制流一个进程中可以并发多个线程每条线程并发执行不同的任务。线程包含了表示进程内执行环境必须的信息其中包括进程中表示线程的 线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno常量以及线程私有数据。进程的所有信息对所有线程都是共享的包括可执行的程序文本、程序的全局变量和堆内存、栈以及文件描述符。在Unix和类Unix操作系统中线程也被称为轻量级进程lightweight process但轻量级进程更多指的是内核线程kernel thread而把用户线程user thread称为线程。 进程——资源分配的最小单位线程——程序执行的最小单位 进程有独立的地址空间一个进程崩溃后在保护模式下不会对其他进程产生影响而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量但没有独立的地址空间一个线程死掉就等于整个进程死掉所以多进程程序比多线程程序健壮但切换进程时资源耗费比较大效率差一些。但对于要求同时进行且又需要共享变量的并发操作只能使用线程不能使用进程。 2.2 使用线程的理由 从上面我们知道了进程与线程的区别其实这些区别也就是我们使用线程的理由。总的来说就是进程有独立的地址空间线程没有独立的地址空间同一进程内的线程共享进程的地址空间。 使用多线程的理由之一是和进程相比它是一种非常“节俭”的多任务处理方式。我们知道在Linux系统下启动一个新的进程必须分配给它独立的地址空间建立众多的数据表来维护它的代码段、堆栈段和数据段这是一种昂贵的多任务工作方式。而运行于一个进程中的多个线程它们彼此之间使用相同的地址空间共享大部分数据启动一个线程所花费的空间远远小于启动一个进程所花费的空间而且线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计总的说来一个进程的开销大约是一个线程开销的30倍左右当然在具体的系统上这个数据可能会有较大的区别。 使用多线程的理由之二是线程间方便的通信机制。对不同进程来说它们具有独立的数据空间要进行数据的传递只能通过通信的方式进行这种方式不仅费时而且很不方便。线程则不然由于同一进程下的线程之间共享数据空间所以一个线程的数据可以直接为其它线程所用这不仅快捷而且方便。当然数据的共享也带来其他一些问题有的变量不能同时被两个线程所修改有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击这些正是编写多线程程序时最需要注意的地方。 多线程程序作为一种多任务、并发的工作方式有以下的优点 提高应用程序响应。这对图形界面的程序尤其有意义当一个操作耗时很长时整个系统都会等待这个操作此时程序不会响应键盘、鼠标、菜单的操作而使用多线程技术将耗时长的操作time consuming置于一个新的线程可以避免这种尴尬的情况。使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时不同的线程运行于不同的CPU上。改善程序结构。一个既长又复杂的进程可以考虑分为多个线程成为几个独立或半独立的运行部分这样的程序会利于理解和修改。
http://www.zqtcl.cn/news/448194/

相关文章:

  • 东莞网站建设技术支持产品推广怎么写
  • 银川app购物网站制作公司网站建设怎样提升形象与品牌价值
  • 中山城市建设集团网站信誉好的邯郸网站建设
  • 做网站很赚钱吗贵阳网站建设费用
  • 设计网站的关键点用ps做招生网站
  • 制作网站公司服务器租赁一年的费用网页动画是如何制作出来的
  • 佛山网站优化有莱芜房产网新房
  • 西安英文旅游网站建设中国建筑工程门户商城
  • 山东企业建站软件购物网站是多少
  • 外链收录网站语音识别程序代做网站
  • 天津平台网站建设公司wordpress删除页头页尾
  • 网站加入站长统计wordpress设置手机浏览器
  • 服务器网站备案怎么做网站流量竞品分析
  • 四川省建设工程信息网站上海金融网站制作公
  • php7.2 wordpress黑帽seo软件
  • 网站后台cms做网站项目团队口号
  • 云南哪几个建网站公司九江做网站哪家好
  • 时尚网站模板代码网站模板炫酷
  • 股票网站怎么做动态表格live2d看板娘wordpress
  • 班级网站建设开题报告企业创新平台建设
  • 网站建设有什么要求建设电子商务网站的步骤
  • 百度推广和哪些网站有合作专业网站开发多少钱
  • 相城区住房建设局网站做网站开发电脑配置
  • 成都网站建设制作photoshop网页制作视频教程
  • 深圳网站做的好的公司广州外贸营销网站建设公司
  • 网站你懂我意思正能量晚上不用下载直接进入微信公众号免费模板素材网站
  • 网站设计模板之家南宁seo外包平台
  • 免费舆情网站遵义市双控体系建设网站
  • 企业做网站得多少钱wordpress get_posts
  • 轻淘客网站怎么做申请个人网址