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

互联网营销与推广seo网站的锚文本怎么写

互联网营销与推广,seo网站的锚文本怎么写,免费手机网站空间申请,营销型网站建设制作推广文章目录 线程 pthread线程 vs 进程线程退出 等待 消息传递join:等待#xff0c;传参void*#xff1b; exit:退出#xff0c;对参数赋值void**; 互斥锁 mutex互斥锁mutex条件cond_等待wait、触发signal 控制线程执行 补充: 宏-静态初始化 互斥锁/条件 线程 pthread 线程 vs… 文章目录 线程 pthread线程 vs 进程线程退出 等待 消息传递join:等待传参void* exit:退出对参数赋值void**; 互斥锁 mutex互斥锁mutex条件cond_等待wait、触发signal 控制线程执行 补充: 宏-静态初始化 互斥锁/条件 线程 pthread 线程 vs 进程 线程直接用主程序的内存地址所以如果在线程里改主程序变量就是直接改 线程vs进程 a.比进程快大概30倍不需要复制完全一样的内存来创建运行直接使用主程序的内存 b.没有进程那么健壮子线程蹦了就都崩了 而对进程而言子进程崩了父进程不受影响继续执行 线程退出 等待 消息传递 join:等待传参void* exit:退出对参数赋值void**; #include stdio.h #include pthread.h #include string.h//创建线程 //int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg); // 返回若成功返回0否则返回错误编号//子线程执行函数func1里的pthread_exit负责将void* 传递给主线程的pthread_joi的void **参数 //int pthread_exit(void *rval_ptr);// int pthread_join(pthread_t thread, void **rval_ptr); // 返回若成功返回0否则返回错误编号void *func1(void * arg) {static char data[] I am ok! thanks!;printf(t1 id:%d\n,(int)pthread_self());printf(t1 arg data:%s\n,(char* )arg);pthread_exit((void* )data); }int main() {pthread_t t1;char arg[] Are you ok?;char data1[1024];memset(data1,\0,sizeof(data1));printf(main id:%d\n,(int)pthread_self());int creatN pthread_create(t1,NULL,func1, (void*)arg); //创建其他线程也是类似操作 定义好执行函数func2和传入的形参arg2即可//pthread_create(t2,NULL,func2, (void*)arg2); void* ret;pthread_join(t1,ret);strcpy(data1, (char*)ret);printf(t1 return data:%s\n,data1);return 0; }互斥锁 mutex 互斥锁我上锁你就不能用了除非我解锁了你才能用 配合线程使用 互斥锁mutex条件cond_等待wait、触发signal 控制线程执行 //例 #include stdio.h #include pthread.h #include string.h #include unistd.h/*-----------------------------------------------------*/ // 创建互斥锁变量 //pthread_mutex_t 锁名 // 初始化及销毁互斥锁 // int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); // int pthread_mutex_destroy(pthread_mutex_t mutex); // 返回若成功返回0否则返回错误编号//上锁 例pthread_mutex_lock(mutex); //解锁 例pthread_mutex_unlock(mutex);/*-----------------------------------------------------*/// 创建条件变量 //pthread_cond_t 条件名 // 初始化及销毁条件变量 // int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr); //消息只给一个线程 // int pthread_cond_destroy(pthread_cond_t *cond); //广播给所有线程 // 返回若成功返回0否则返回错误编号// 等待 // int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex); // int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, cond struct timespec *restrict timeout); // 返回若成功返回0否则返回错误编号//触发 // int pthread_cond_signal(pthread_cond_t *cond); // int pthread_cond_broadcast(pthread_cond_t *cond); // 返回若成功返回0否则返回错误编号/*-----------------------------------------------------*/int numNB 0; pthread_mutex_t mutex; pthread_cond_t cond;void *func1(void * arg) {printf(t1 id:%ld\n,(unsigned long)pthread_self());printf(t1 get main data:%s\n,(char* )arg);while(1){pthread_cond_wait(cond,mutex);printf(--------------------\n);printf(t1:%d\n,numNB);printf(--------------------\n);sleep(1);numNB 0;}}void *func2(void * arg) {printf(t2 id:%ld\n,(unsigned long)pthread_self());printf(t2 get main data:%s\n,(char* )arg);while(1){pthread_mutex_lock(mutex); printf(t2:%d\n,numNB);pthread_mutex_unlock(mutex);if(numNB 3){pthread_cond_signal(cond); } sleep(1); } }int main() {pthread_mutex_init(mutex,NULL);pthread_cond_init(cond,NULL);pthread_t t1,t2;void* ret;char arg[] Are you ok?;char data1[1024];memset(data1,\0,sizeof(data1));int creatN1 pthread_create(t1,NULL,func1, (void*)arg);int creatN2 pthread_create(t2,NULL,func2, (void*)arg);printf(main id:%ld\n,(unsigned long)pthread_self());pthread_join(t1,ret);pthread_join(t2,ret);pthread_mutex_destroy(mutex);pthread_cond_destroy(cond);return 0; }补充: 宏-静态初始化 互斥锁/条件 //在main函数里不用宏pthread_mutex_init() 正常初始化锁/条件的即为动态初始化 //例 pthread_mutex_t mutex; int main() {pthread_mutex_init(mutex,NULL);return 0; }//在定义互斥锁/条件变量时使用默认宏直接完成初始化即为静态初始化 //例 pthread_mutex_t mutex PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond PTHREAD_COND_INITIALIZER;
http://www.hkea.cn/news/14372611/

相关文章:

  • 无锡高端网站建设咨询企业所得税会计分录怎么做
  • 网站备案后应该做什么品牌的网站建设一般多少钱
  • 郑州网站建设moran连接品硕网线做怎么弹网站
  • 北京网站建设+++招聘信息如何将下载好的网站模板用到织梦程序上
  • eclipse 网站开发过程网站配色方案橙色
  • 投票网站定制乐清市建设规划局网站
  • 可以做来电名片的网站学编程从哪儿入手
  • 网站建设标准 方案书微信二维码制作网站
  • 建小公司网站网站建设 app
  • 酒类网站建设方案分类网站上怎么做锚文本
  • 宁波做网站的公司哪家好南昌大学南昌网站建设公司
  • 织梦网站上传数据库原创先锋 北京网站建设
  • 怎么看别人网站怎么做的优化wordpress稳定吗
  • 营销型网站是什么样的赚钱黑渠道
  • 邯郸手机网站建设服务专门开发小程序的公司
  • 建设银行网站注册用户名做红包网站是犯法的吗
  • 游戏开发网站开发汕头人才网
  • 怎么做盗版网站吗查看网站开发语言方法
  • 廊坊网站建设招聘前端静态网页模板
  • wordpress 视频图片网站wordpress 腾讯cdn
  • 提交网站给百度腾讯企业邮箱域名购买
  • 怎么做html网站php可以做视频网站
  • 淘宝客优惠券网站怎么做的网页设计作业百度云
  • 微信网站建设企业集团官网及站群网站建设
  • 网站建设要学哪些东西免费学服装设计的网站
  • 沈阳网站建设团队苏州专业网站制作
  • 怎么查网站域名办公室装修效果图图片大全
  • 网站建设开场介绍话术网站备案号被注销
  • 网站建设难点网站公司做的网站被攻击
  • 网站的js效果网站上的销售怎么做