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

北京网站设计的公司城市分站cms

北京网站设计的公司,城市分站cms,网站做链接的意义是什么意思,太原网站排名优化价格一.顺序队列练习 【1】要求和思路 【2】.h文件的查找函数 【3】主函数复制,及递归函数 【4】 sem 信号量用于同步,队列收,子进程就接受 【5】 (1)信号量作用: 在这段代码中,信号量 sem_task …

一.顺序队列练习

【1】要求和思路

【2】.h文件的查找函数

【3】主函数复制,及递归函数

【4】

sem 信号量用于同步,队列收,子进程就接受

【5】

(1)信号量作用:

在这段代码中,信号量 sem_task 被用于控制线程之间的同步,特别是在主线程和三个工作线程(tid1tid2tid3)之间。信号量的主要作用是确保线程安全地访问共享资源(如 SeqQueue 队列),并协调线程之间的工作流程。以下是信号量在这段代码中的具体作用:

  1. 初始化信号量

    sem_init(&sem_task, 0, 0);

    这行代码初始化了一个信号量 sem_task,其值为0。这意味着在任何线程可以继续执行之前,必须先通过 sem_post 函数释放信号量。

  2. 在主线程中使用信号量

    • 主线程在处理目录时,如果遇到子目录,它会将子目录的路径放入 SeqQueue 队列中,并使用 sem_post 函数释放信号量,通知工作线程有新的任务。

      EnterSeqQueue(sq, &data);    
      sem_post(&sem_task);        
    • 这样做的目的是让工作线程知道有新的子目录需要处理。

  3. 在工作线程中使用信号量

    • 工作线程在开始处理任务之前,会调用 sem_wait 函数等待信号量。如果信号量的值为0(表示没有任务),线程会阻塞,直到主线程通过 sem_post 函数释放信号量。

      sem_wait(&sem_task);
    • 一旦信号量的值大于0,sem_wait 会将其减1并继续执行,线程从 SeqQueue 队列中获取任务并处理。

  4. 结束信号

    • 在主线程完成所有目录的处理后,它会向 SeqQueue 队列中添加一个特殊的结束信号("over"),并再次释放信号量,通知工作线程任务已完成。

      strcpy(data.path,"over");
      EnterSeqQueue(sq, &data);
      sem_post(&sem_task);
    • 工作线程在处理完所有任务后,会检查队列中的下一个任务是否为 "over"。如果是,线程将退出循环,结束执行。

  5. 销毁信号量

    sem_destroy(&sem_task);

    这行代码在程序结束前销毁信号量,释放相关资源。

总结来说,信号量 sem_task 在这段代码中起到了协调主线程和工作线程之间任务分配和同步的作用,确保了线程安全地访问共享资源,并有效地控制了线程的工作流程。

在多线程程序中,队列(如代码中的 SeqQueue)通常被多个线程共享,一个或多个线程负责向队列中添加元素(入队操作),而其他线程则从队列中移除元素(出队操作)。由于多个线程可能会同时访问和修改队列,因此需要一种机制来保证操作的原子性和一致性,这就是锁(mutex)的作用。

(2)上锁的作用

在这段代码中,虽然没有直接显示使用锁(mutex)来保护队列的操作,但可以推测 EnterSeqQueueQuitSeqQueue 函数内部可能使用了锁来确保线程安全。以下是锁在队列操作中可能起到的作用:

  1. 互斥访问

    • 当一个线程正在向队列中添加或移除元素时,锁可以防止其他线程同时进行这些操作。这样可以避免数据竞争和不一致的情况发生。

  2. 原子操作

    • 锁确保了队列操作的原子性,即入队和出队操作要么完全执行,要么完全不执行,不会出现中间状态。

  3. 顺序控制

    • 锁可以控制线程访问队列的顺序,确保按照特定的顺序处理队列中的元素。

  4. 条件同步

    • 锁通常与条件变量(condition variables)一起使用,以实现更复杂的同步机制。例如,当队列为空时,出队操作可以等待队列中有元素可用;当队列满时,入队操作可以等待队列有空间。

在实际的多线程程序中,通常会使用互斥锁(mutex)来保护共享数据结构,如队列。互斥锁确保了在任何时刻只有一个线程可以访问被保护的资源,从而保证了数据的一致性和线程安全。

二.链式队列

三.树

(1)基本概念

【1】树:n(n>=0)个结点的有限集合。n = 0 ,空树。
在任意一个非空树中,
1,有且仅有一个特定的根结点
2,当n>1 时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个
集合又是一个树,并且称谓子树。


【2】结点拥有子树的个数称谓结点的度。度为0的结点称谓叶结点。度不为0,称谓分支结点。

【3】树的度数是指,这棵树中,最大的结点的度数,称谓树的度数。
树的深度或高度,从根开始,根为第一层,根的孩子为第二层。

【4】树的存储,顺序结构,链式结构。


(2)二叉树,binary tree


n个结点的有限集合,集合要么为空树,要么由一个根结点和两棵互不相交,分别称谓根结点的左子树和右子树的二叉树组成。。

特点,
1,每个结点最多两个子树。
2,左子树和右子树是有顺序的,次序不能颠倒。
3,如果某个结点只有一个子树,也要区分左,右子树。

特殊的二叉树
1,斜树,所有的结点都只有左子树,左斜树,所有结点都只有右子树,右树。
2,满二叉树,所有的分支结点都存在左右子树,并且叶子都在同一层上。
3,完全二叉树,对于一颗有n个结点的二叉树按层序编号,如果编号i(1<=i<=n)的结点于同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这可树为完全二叉树。

特性
1,在二叉树的第i层上最多有2^(i-1)个结点 i>=1
2,深度为k的二叉树至多有2^k  -1 个结点 k>=1
3,任意一个二叉树T,如果其叶子结点的个数是n0,度数为2的结点数为n2, n0 = n2 +1;
4,有n个结点的完全二叉树深度为(logn/log 2) +1;

层序,
前序,根左右,先访问根,然访问左,访问右。
中序,左根右,先从根开始(不是先访问根),从左开始访问,在访问根,在访问右结点。
后序,左右根,先从根开始(不是先访问根),先访问左,在访问右。在访问根。

typedef struct BiTNode  /* 结点结构 */
{
   TElemType data;        /* 结点数据 */
   struct BiTNode *lchild,*rchild; /* 左右孩子指针 */
}BiTNode,*BiTree;

CreateBiTree();
DestroyBiTree();

PreOrderTraverse();
void InOrderTraverse(BiTree T);
void PostOrderTraverse(BiTree T);

【1】dat按前序排列

【2】create是遇到#创建但是不进行递归创建左右节点


文章转载自:

http://bhKSdRfD.sjksk.cn
http://NxLVtXNL.sjksk.cn
http://HunRXOHp.sjksk.cn
http://BVEOKhDE.sjksk.cn
http://UB0blUY9.sjksk.cn
http://ZXAosUpk.sjksk.cn
http://lDaR0WOq.sjksk.cn
http://H0zpcYi9.sjksk.cn
http://3Mc8CjBD.sjksk.cn
http://hGRoC62M.sjksk.cn
http://lvuwhDyh.sjksk.cn
http://pCdQrzv7.sjksk.cn
http://AtB9QxKe.sjksk.cn
http://Ml5jtCPv.sjksk.cn
http://UkG84OE2.sjksk.cn
http://u4YCf2M8.sjksk.cn
http://0c6yngp8.sjksk.cn
http://P2hpy12b.sjksk.cn
http://D5Hhit5N.sjksk.cn
http://fdMcWPP9.sjksk.cn
http://gurIKN7g.sjksk.cn
http://OTIvYElx.sjksk.cn
http://ql5ZuvAR.sjksk.cn
http://McQs37fb.sjksk.cn
http://IMrte1Nc.sjksk.cn
http://ex20JcUs.sjksk.cn
http://c93nK5oU.sjksk.cn
http://5phcBXWq.sjksk.cn
http://0nQjqUni.sjksk.cn
http://kt5nbilF.sjksk.cn
http://www.dtcms.com/wzjs/635863.html

相关文章:

  • 河南城源建设工程有限公司网站湖北工程建设总承包有限公司网站
  • 杭州网站建设加q479185700wordpress it模板下载地址
  • 2015年做哪个网站能致富wordpress多域名访问
  • 建设公司网站内容正规的编程培训机构
  • 建设厅网站如何查询企业信息网小县城做房地产网站
  • 搜索网站建设推广优化php做网站页面
  • 便宜模板网站建设wordpress页眉置顶
  • 手机看电影的网站建设网站建设的方法有四种
  • 设计网站有哪些东南亚做网站 什么语言
  • 做网站口碑比较好的大公司营销型单页网站
  • 怎么建设视频网站提供佛山网站制作
  • icp网站 是什么意思免费微信小程序模板
  • js网站源码下载如何创作自己的平台
  • 网站建设龙采科技企业所得税怎么算100万以下
  • 美团网网站建设 费用重庆网站开发
  • 京东网站谁建设北大青鸟培训机构官网
  • 做科普网站汕头网站制作公司
  • 网站推广的基本方法为网络游戏代理
  • 怎么评价网站做的好坏佛山网站建设外贸
  • 做非洲出口的网站苏州设计网页
  • 摄影网站开发背景怎么写网站发布时间更改
  • 成立公司后需要做的事情seo最新快速排名
  • 曲阳住房和城乡建设局网站工作邮箱认证提额
  • 网站虚拟主机1g建行app下载官网
  • 如何做网站主赚钱网站开发页面怎么进
  • 纪检监察机关网站建设方案网站建设佰首选金手指六
  • 深圳招聘网官方网站企业网页设计费用
  • 电子商务网站开发报价知名企业网站建设
  • 企业网站有哪些内容泰安网络电视台直播
  • 南阳定制网站制作价格低网站后台密码忘记了