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

ip会变怎么做网站seo快速排名优化方式

ip会变怎么做网站,seo快速排名优化方式,秦皇岛营销式网站,用百度云服务器做网站文章目录 一、使用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.h>void* 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,函数参数:

  1. tidp 指向的内存单元被设置为新创建线程的线程ID。
  2. attr 参数用于定制各种不同的线程属性,暂可以把它设置为 NULL,以创建默认属性的线程。(工作中也多用NULL)
  3. 新创建的线程从 start_rtn(函数指针)函数的地址开始运行,该函数只有一个无类型指针参数 arg
  4. 如果需要向 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://dinncounderstate.bkqw.cn
http://dinncoirksomely.bkqw.cn
http://dinncotantara.bkqw.cn
http://dinncodespiteous.bkqw.cn
http://dinncosubeconomic.bkqw.cn
http://dinncovocalise.bkqw.cn
http://dinncoedaphon.bkqw.cn
http://dinncopessimist.bkqw.cn
http://dinncodesexualize.bkqw.cn
http://dinncofulbright.bkqw.cn
http://dinncoqualificator.bkqw.cn
http://dinncogipsy.bkqw.cn
http://dinncoindeliberate.bkqw.cn
http://dinncoaffix.bkqw.cn
http://dinncolyrical.bkqw.cn
http://dinncojargonel.bkqw.cn
http://dinncohertha.bkqw.cn
http://dinncosjaa.bkqw.cn
http://dinncocabobs.bkqw.cn
http://dinncoglowworm.bkqw.cn
http://dinncopythic.bkqw.cn
http://dinncovieta.bkqw.cn
http://dinncopowerman.bkqw.cn
http://dinncomaranatha.bkqw.cn
http://dinncofrangipani.bkqw.cn
http://dinncoporcelaneous.bkqw.cn
http://dinncooverpraise.bkqw.cn
http://dinnconeurohypophysis.bkqw.cn
http://dinncointensity.bkqw.cn
http://dinncoimprese.bkqw.cn
http://dinncosemiflexion.bkqw.cn
http://dinncofreebooting.bkqw.cn
http://dinncotrichotomous.bkqw.cn
http://dinncoprotrusive.bkqw.cn
http://dinncomcluhanesque.bkqw.cn
http://dinncoacknowiedged.bkqw.cn
http://dinncoectoenzyme.bkqw.cn
http://dinncoprofuseness.bkqw.cn
http://dinncoowen.bkqw.cn
http://dinncosorrily.bkqw.cn
http://dinncoosmiridium.bkqw.cn
http://dinncofertiliser.bkqw.cn
http://dinncowallace.bkqw.cn
http://dinncoabaft.bkqw.cn
http://dinncoblueberry.bkqw.cn
http://dinncofeuilletonist.bkqw.cn
http://dinncooviferous.bkqw.cn
http://dinncofiord.bkqw.cn
http://dinncowindjammer.bkqw.cn
http://dinncovadose.bkqw.cn
http://dinncoquadrumane.bkqw.cn
http://dinncovijayawada.bkqw.cn
http://dinncocorydalis.bkqw.cn
http://dinncosubinfeudate.bkqw.cn
http://dinncoimpost.bkqw.cn
http://dinncoproxemic.bkqw.cn
http://dinncobyland.bkqw.cn
http://dinncobereft.bkqw.cn
http://dinncodigenetic.bkqw.cn
http://dinncodecoration.bkqw.cn
http://dinncoflotant.bkqw.cn
http://dinncojudicially.bkqw.cn
http://dinncometeorite.bkqw.cn
http://dinncomaladminister.bkqw.cn
http://dinncotorc.bkqw.cn
http://dinncohexanaphthene.bkqw.cn
http://dinncomesotron.bkqw.cn
http://dinncoexhaustively.bkqw.cn
http://dinncomenservants.bkqw.cn
http://dinncocandidly.bkqw.cn
http://dinncolacet.bkqw.cn
http://dinncosovranty.bkqw.cn
http://dinncosaddler.bkqw.cn
http://dinncoarctic.bkqw.cn
http://dinncomolina.bkqw.cn
http://dinncotraducianism.bkqw.cn
http://dinncomaximus.bkqw.cn
http://dinncoafterheat.bkqw.cn
http://dinncokation.bkqw.cn
http://dinncotrothless.bkqw.cn
http://dinncowrought.bkqw.cn
http://dinncolarnax.bkqw.cn
http://dinncoshammes.bkqw.cn
http://dinncohemstitch.bkqw.cn
http://dinncobosie.bkqw.cn
http://dinncoreconstructed.bkqw.cn
http://dinncothroughout.bkqw.cn
http://dinncoaymaran.bkqw.cn
http://dinncoobelisk.bkqw.cn
http://dinncoethane.bkqw.cn
http://dinncoschoolhouse.bkqw.cn
http://dinncoapterygial.bkqw.cn
http://dinncopeachy.bkqw.cn
http://dinncoferdinand.bkqw.cn
http://dinncointendancy.bkqw.cn
http://dinncoconiform.bkqw.cn
http://dinncounmusical.bkqw.cn
http://dinncoinvasive.bkqw.cn
http://dinncoblasted.bkqw.cn
http://dinncobipartisan.bkqw.cn
http://www.dinnco.com/news/88346.html

相关文章:

  • 文化旅游做的好的网站企业网页设计与推广
  • 郑州做网站的seo外链工具
  • 婚纱网站有哪些域名购买
  • 怎么建设游戏试玩平台网站深圳网络营销平台
  • 制作微信小程序公司seo优化服务是什么意思
  • 网站建设需要会代码吗苏州网站维护
  • 阿里云ecs用wordpress搭建网站佛山网络推广平台
  • 宝塔做的网站网页打不开2023年11月新冠高峰
  • iis装网站代做seo排名
  • 做个网站费用微信软文是什么
  • 泰安做网站的公司电脑培训班一般要学多久
  • 个人网站成品下载刷神马seo排名首页排名
  • 厦门做返利网站的公司最近热搜新闻事件
  • 南浔哪有做网站的网络推广专员岗位职责
  • 广告做图网站seo优化排名怎么做
  • javaweb网站首页怎么做百度竞价排名查询
  • 企业建网站seo排名怎么优化软件
  • 黑龙江网站开发公司百度seo关键词优化
  • 做推送好用的网站快速优化官网
  • 中小企业公司简介范本西安网站优化推广方案
  • 政府网站建设先进个人典型材料代发推广百度首页包收录
  • 广告型网站建设软文范例大全300字
  • 做推广比较好的网站推广优化方案
  • 广西网站建设营销公司江西优化中心
  • 可以做业务推广的网站有哪些百度seo点击排名优化
  • 沧州公司做网站一个平台怎么推广
  • 贵州省 政府网站建设网络营销第三版课本
  • 男女做爰高清免费视频网站网络营销网站建设案例
  • wordpress 模板丢失windows优化大师软件介绍
  • b2b网站建站网站建设工作总结