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

建设h5响应式网站有什么建议wordpress移动显示

建设h5响应式网站有什么建议,wordpress移动显示,佛山网站建设哪家评价高,永久网站推广一、什么是线程 线程#xff08;Thread#xff09;是计算机中的基本执行单元#xff0c;是操作系统调度的最小单位。线程是进程内的一个独立执行流程#xff0c;一个进程可以包含多个线程#xff0c;这些线程共享进程的资源#xff0c;但每个线程都有自己的独立栈空间以及…一、什么是线程 线程Thread是计算机中的基本执行单元是操作系统调度的最小单位。线程是进程内的一个独立执行流程一个进程可以包含多个线程这些线程共享进程的资源但每个线程都有自己的独立栈空间以及程序计数器。 二、线程与进程的优缺点 1、线程的优点 1、线程创建和销毁的开销比进程小因为线程共享进程中的地址空间和其他资源。 2、线程可以同时执行多个任务提高了系统的并发性能。 3、线程之间的通信和同步比进程之间的通信和同步更快捷和简单因为线程共享同一进程的内存。 4、线程可用于执行GUI等交互性任务而不会卡住整个应用程序。 2、线程的缺点 1、 多线程访问共享数据时需要使用同步技术否则会导致不可预期的结果。 2、 线程的调试和bug定位比较困难因为多个线程共享进程的执行环境。 3、 如果线程中出现了异常可能会影响整个进程。 3、进程的优点 1、 进程相互独立不会相互影响因此更加健壮和安全。 2、进程可以在不同的硬件和操作系统上运行更具有可移植性。 3、 进程使用管道等IPC进程间通信机制可以方便的实现进程之间的通信和同步。 4、进程的缺点 1、进程创建和销毁的开销比较大因为每个进程都需要独立的地址空间和系统资源。 2、进程之间通信和同步需要使用IPC技术比较繁琐和复杂。 3、进程的并发性能比较差不能同时执行多个任务。 三、线程的使用场景 1、多任务处理多线程可以同时处理多个任务提高程序的执行效率和响应速度。 2、并发访问当多个线程同时访问共享资源时需要使用线程控制技术避免出现竞态条件和死锁等问题。 3、异步编程线程可以在后台执行一些耗时的操作不会阻塞主线程提高程序的用户体验。 4、服务器编程服务器一般要同时处理多个客户端请求使用多线程可以提高服务器的并发处理能力。 5、图形界面编程图形界面程序中需要使用线程避免阻塞用户界面实现异步更新UI界面。 6、大数据处理对于大数据处理和分析多线程可以提高数据处理的效率和速度。 7、游戏开发游戏开发中需要实时更新游戏画面和处理用户输入需要使用多线程技术实现。 四、与线程有关的函数API 1、线程的创建 创建一条POSIX线程非常简单只需要指定线程的执行函数即可 // 创建一条线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);// 接口说明返回值成功返回0失败返回一个错误码参数thread新线程的TID参数attr线程属性若创建标准线程则该参数可设置为NULL参数start_routine线程函数是一个回调函数跟信号的例程函数有点像参数arg线程函数的参数 2、线程的退出 与进程类似当一条线程执行完毕其任务时可以使用接口来退出 // 线程的退出 void pthread_exit(void *retval);// 接口说明参数retval线程的返回值若线程没有数据可返回则可写成NULLpthread_exit()与exit()的区别 pthread_exit()退出当前线程 exit()退出当前进程即退出进程中的所有进程 3、线程的结合 与进程类似线程退出后不会立即释放其所占有的系统资源而会成为一个僵尸线程。其他线程可使用pthread_join()来释放僵尸线程的资源并可获得其退出时返回的退出值该函数接口被称为线程的接合函数 // 阻塞等待指定线程退出 int pthread_join(pthread_t tid, void **val);// 非阻塞接合指定线程退出 int pthread_tryjoin_np(pthread_t tid, void **retval);// 在指定时间内阻塞接合指定线程的退出 int pthread_timedjoin_np(pthread_t tid, void **retval, const struct timespec *ashtime);// 接口说明1若指定tid的线程尚未退出那么该函数将持续阻塞2若只想阻塞等待指定线程tid退出而不想要其退出值那么val可置为NULL3若指定tid的线程处于分离状态或者不存在则该函数会出错返回 4、获取线程TID // 获取线程TID pthread_t pthread_self(void);// 接口说明返回值线程TID该接口类似进程管理中的getpid()但是进程的PID是系统全局资源而线程的TID仅限于进程内部的线程间有效。当我们要对某条线程执行发送信号取消阻塞接合等操作时需要用到线程的TID。 5、线程错误码 线程函数对系统错误码的处理跟标准C库函数的处理方式有很大不同标准C库函数会对全局错误码errno进行设置而线程函数发生错误时会直接返回错误码。以线程接合为例若要判定接合是否成功成功的情况下输出僵尸线程的退出值失败的情况下输出失败的原因实现代码应该这么写 #include error.h // 头文件中定义了errno变量void *val;errno pthread_join(tid, val);if(errno 0) {printf(成功接合线程其退出值为%d\n, (int)val; } else {perror(接合线程失败); } 6、函数单例 许多时候我们希望某个函数只被严格执行一次这种需求在一些初始化功能模块中尤为常见但是如果某个进程中内含多条线程无法预先知晓哪条线程会先执行那么初始化就会被执行多次但如果使用函数单例就会只执行一次。 // 函数单例启动接口 int pthread_once(pthread_once_t *once_control, void (*init_routine)(void));// 接口说明参数once_control用来关联某个函数单例被关联的函数单例只会被执行一遍参数init_routine函数指针指向的函数就是只执行一遍的函数单例// 通常参数once_control指定为函数单例控制pthread_once_t once_control PTHREAD_ONCE_INIT; 五、案例 // 线程的案例#include stdio.h #include pthread.h #include errno.h #include string.hint flag 0; // 简单的标志位来控制同步 char data[100];// 线程1的例程函数用来接收数据 void *recv_routine(void *arg) {printf(I am recv_routine, my tid %ld\n, pthread_self());while(1){if(flag){printf(pthread1 read data: %s\n, data);memset(data, 0, sizeof(data));flag 0;}} }// 线程2的例程函数用来发送数据 void *send_routine(void *arg) {printf(I am send_routine, my tid %ld\n, pthread_self());while(1){printf(please input data:\n);fgets(data, 100, stdin);printf(pthread2 send data\n);flag 1;} }int main(int argc, char *argv[]) {pthread_t tid1, tid2;// 创建线程1用来接收数据errno pthread_create(tid1, NULL, recv_routine, NULL);if(errno 0){printf(pthread create recv_routine success, tid %ld\n, tid1);}else{perror(pthread create recv_routine fail\n);}// 创建线程2用来发送数据errno pthread_create(tid2, NULL, send_routine, NULL);if(errno 0){printf(pthread create send_routine success, tid %ld\n, tid2);}else{perror(pthread create send_routine fail\n);}// 一定要加这个否则主函数直接退出相当于进程退出所有线程也退出// 或者加上while(1)等让主函数不退出pthread_exit(0);return 0; } 六、总结 线程可以提供系统的并发性开销比进程更加小但是不如进程健壮移植性好。线程有自己的属性下一篇博客将讲解。
http://www.sadfv.cn/news/193575/

相关文章:

  • 杭州网站建设的企业如何开发wordpress主题
  • 网站建设和钱滕州公司做网站
  • 广州建设工程造价管理网站百度个人中心登录
  • 宿迁盐城网站建设企业免费的企业名录搜索
  • 和朋友合伙做网站有没有可以免费看的视频
  • 张家界市建设工程造价管理站网站wordpress分类目录顺序
  • vps网站设置四川建设厅的网站
  • 上海网站建设大概多少钱网站建设哪家售后做的好
  • 企业管理类的网站做5173这样的网站要多少人
  • 新河网站快排seo做外贸需要什么样的网站
  • 常见的网站推广方法乌兰察布建设局网站
  • 苏州知名网站制作公司如何建设线报网站
  • 做网站定金是多少钱flashfxp上传网站模板
  • 哈尔滨住房和城乡建设局网站微信公众号开发网站建设
  • 做淘客需要用的网站学生做的动漫网站
  • 企业网站做的好的有什么公司wordpress百万级
  • 网页模板建站系统南昌网站建设公司价位
  • 新开传奇网站推荐开发门户网站
  • 网站建设犭金手指C排名15wordpress主题加载慢
  • 建设企业网站开发公司宿迁房产网丫丫找房
  • 计算机网站建设员只有域名怎么做网站
  • 外贸建站选择哪个服务器好学生服务器租用
  • 常见的网站布局结构房地产开发建设网站
  • 网站开发经济可行性分析怎么写百度网站优化升上去
  • 赣州网站优化制作网站建设分为哪几个阶段
  • 聊天网站站怎么做如何做公司网站简介
  • 简述制作网站的主要流程平面图设计软件app
  • 手机站点wordpress主题zip
  • 开发网站要注意什么问题免费空间网站源码
  • 企业建立网站需要提供什么城市网站建设摘要论文