网站平台开发要注意什么问题wordpress破解插件

news/2025/9/22 21:48:38/文章来源:
网站平台开发要注意什么问题,wordpress破解插件,大连建站免费模板,宝塔搭建wordpress列表和列表项 列表 列表是FreeRTOS中的一个数据结构#xff0c;概念上和链表有点类型#xff0c;是一个循环双向链表#xff0c;列表被用来跟踪FreeRTOS中的任务。列表的类型是List_T#xff0c;具体定义如下#xff1a; typedef struct xLIST {listFIRST_LIST_INTEGRI…列表和列表项 列表 列表是FreeRTOS中的一个数据结构概念上和链表有点类型是一个循环双向链表列表被用来跟踪FreeRTOS中的任务。列表的类型是List_T具体定义如下 typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE /* Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */configLIST_VOLATILE UBaseType_t uxNumberOfItems;ListItem_t * configLIST_VOLATILE pxIndex; /* Used to walk through the list. Points to the last item returned by a call to listGET_OWNER_OF_NEXT_ENTRY (). */MiniListItem_t xListEnd; /* List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */listSECOND_LIST_INTEGRITY_CHECK_VALUE /* Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ } List_t;listFIRST_LIST_INTEGRITY_CHECK_VALUE和listSECOND_LIST_INTEGRITY_CHECK_VALUE都是用来检查列表完整性的需要将宏configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES 设置为1默认不开启。uxNumberOfItems记录列表项的数量pxIndex指向当前的列表项可用来遍历列表类型是ListItem_t *xListEnd作为一个标记表示列表最后一个列表项类型是MiniListItem_t 。 列表项 FreeRTOS提供了两种列表项列表项ListItem_t 类型和迷你列表项MiniListItem_t 类型。对于列表项具体定义为 struct xLIST_ITEM {listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /* Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */configLIST_VOLATILE TickType_t xItemValue; /* The value being listed. In most cases this is used to sort the list in descending order. */struct xLIST_ITEM * configLIST_VOLATILE pxNext; /* Pointer to the next ListItem_t in the list. */struct xLIST_ITEM * configLIST_VOLATILE pxPrevious; /* Pointer to the previous ListItem_t in the list. */void * pvOwner; /* Pointer to the object (normally a TCB) that contains the list item. There is therefore a two way link between the object containing the list item and the list item itself. */void * configLIST_VOLATILE pvContainer; /* Pointer to the list in which this list item is placed (if any). */listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE /* Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ }; typedef struct xLIST_ITEM ListItem_t; /* For some reason lint wants this as two separate definitions. */ listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE和listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE检查列表项完整性xItemValue列表项的值pxNext指向下一个列表项pxPrevious指向前一个列表项pvOwner记录此列表项归谁拥有通常是任务控制块pvContainer记录该列表项归哪个列表 迷你列表项 struct xMINI_LIST_ITEM {listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /* Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */configLIST_VOLATILE TickType_t xItemValue;struct xLIST_ITEM * configLIST_VOLATILE pxNext;struct xLIST_ITEM * configLIST_VOLATILE pxPrevious; }; typedef struct xMINI_LIST_ITEM MiniListItem_t; 可以看出迷你列表项只是比列表项少了几个成员变量迷你列表项所有的成员变量列表项都有。 对于列表结构体List_t中的xListEnd是MiniListItem_t类型表示最后一个列表项pxIndex是ListItem_t指针类型指向真正有数据的列表项。 列表和列表项初始化 列表初始化 新创建的或者定义的列表需要对其做初始化处理列表初始化其实就是初始化列表结构体List_t中的各个成员变量列表的初始化通过函数vListInitialise()来完成。 void vListInitialise( List_t * const pxList ) {/* The list structure contains a list item which is used to mark theend of the list. To initialise the list the list end is insertedas the only list entry. */pxList-pxIndex ( ListItem_t * ) ( pxList-xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. *//* The list end value is the highest possible value in the list toensure it remains at the end of the list. */pxList-xListEnd.xItemValue portMAX_DELAY;/* The list end next and previous pointers point to itself so we knowwhen the list is empty. */pxList-xListEnd.pxNext ( ListItem_t * ) ( pxList-xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */pxList-xListEnd.pxPrevious ( ListItem_t * ) ( pxList-xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */pxList-uxNumberOfItems ( UBaseType_t ) 0U;/* Write known values into the list ifconfigUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList );listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ); }函数的参数是一个列表 pxIndex 指向强制类型转换的xListEndxItemValue 列表项的值为portMAX_DELAY pxNext 指向自己pxPrevious 指向自己uxNumberOfItems 列表中的列表项数目为0 下图为初始化后的列表 列表项初始化 void vListInitialiseItem( ListItem_t * const pxItem ) {/* Make sure the list item is not recorded as being on a list. */pxItem-pvContainer NULL;/* Write known values into the list item ifconfigUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem );listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); }函数的参数是一个列表项指针只是将列表项的pvContainer初始化为NULL 下图为列表项初始后的列表项 列表项插入 列表项插入相当于和在循环双向链表中按照数值的递增插入数据原理是一样的。 列表项的插入式通过函数vListInsert来完成的 void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )参数 pxList要插入的列表pxNewListItem 要插入的列表项 vListInsert是根据pxNewListItem 中的成员变量xItemValue的值来决定插入位置。根据xItemValue的升序方式排序。 具体插入过程如下 void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) { ListItem_t *pxIterator; const TickType_t xValueOfInsertion pxNewListItem-xItemValue;/* Only effective when configASSERT() is also defined, these tests may catchthe list data structures being overwritten in memory. They will not catchdata errors caused by incorrect configuration or use of FreeRTOS. */listTEST_LIST_INTEGRITY( pxList );listTEST_LIST_ITEM_INTEGRITY( pxNewListItem );/* Insert the new list item into the list, sorted in xItemValue order.If the list already contains a list item with the same item value then thenew list item should be placed after it. This ensures that TCBs which arestored in ready lists (all of which have the same xItemValue value) get ashare of the CPU. However, if the xItemValue is the same as the back markerthe iteration loop below will not end. Therefore the value is checkedfirst, and the algorithm slightly modified if necessary. */if( xValueOfInsertion portMAX_DELAY ){pxIterator pxList-xListEnd.pxPrevious;}else{/* *** NOTE ***********************************************************If you find your application is crashing here then likely causes arelisted below. In addition see http://www.freertos.org/FAQHelp.html formore tips, and ensure configASSERT() is defined!http://www.freertos.org/a00110.html#configASSERT1) Stack overflow -see http://www.freertos.org/Stacks-and-stack-overflow-checking.html2) Incorrect interrupt priority assignment, especially on Cortex-Mparts where numerically high priority values denote low actualinterrupt priorities, which can seem counter intuitive. Seehttp://www.freertos.org/RTOS-Cortex-M3-M4.html and the definitionof configMAX_SYSCALL_INTERRUPT_PRIORITY onhttp://www.freertos.org/a00110.html3) Calling an API function from within a critical section or whenthe scheduler is suspended, or calling an API function that doesnot end in FromISR from an interrupt.4) Using a queue or semaphore before it has been initialised orbefore the scheduler has been started (are interrupts firingbefore vTaskStartScheduler() has been called?).**********************************************************************/for( pxIterator ( ListItem_t * ) ( pxList-xListEnd ); pxIterator-pxNext-xItemValue xValueOfInsertion; pxIterator pxIterator-pxNext ) /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */{/* There is nothing to do here, just iterating to the wantedinsertion position. */}}pxNewListItem-pxNext pxIterator-pxNext;pxNewListItem-pxNext-pxPrevious pxNewListItem;pxNewListItem-pxPrevious pxIterator;pxIterator-pxNext pxNewListItem;/* Remember which list the item is in. This allows fast removal of theitem later. */pxNewListItem-pvContainer ( void * ) pxList;( pxList-uxNumberOfItems ); }获取pxNewListItem的xItemValue值 const TickType_t xValueOfInsertion pxNewListItem-xItemValue;检查列表和列表项的完整性 listTEST_LIST_INTEGRITY( pxList );listTEST_LIST_ITEM_INTEGRITY( pxNewListItem );判断插入的位置如果等于portMAX_DELAY 列表项的最大值插入的位置是列表最末尾 if( xValueOfInsertion portMAX_DELAY ){pxIterator pxList-xListEnd.pxPrevious;}不等于portMAX_DELAY 则for循环找到插入位置这个查找过程是按照升序的方式查找列表项插入点的列表的xListEnd 可以想成链表的头不放数据方便查询用的xListEnd 指向的列表项的xItemValue 值最小 for( pxIterator ( ListItem_t * ) ( pxList-xListEnd ); pxIterator-pxNext-xItemValue xValueOfInsertion; pxIterator pxIterator-pxNext ) 将列表项插入到列表中 pxNewListItem-pxNext pxIterator-pxNext;pxNewListItem-pxNext-pxPrevious pxNewListItem;pxNewListItem-pxPrevious pxIterator;pxIterator-pxNext pxNewListItem;/* Remember which list the item is in. This allows fast removal of theitem later. */pxNewListItem-pvContainer ( void * ) pxList; 列表的列表项数目加1 ( pxList-uxNumberOfItems );列表项插入过程 一个初始化的空列表如下 插入值为40的列表项后 插入值60的列表项 插入50后的列表项为 列表末尾插入 末尾插入就不根据xItemValue了直接插入末端。原理和在循环双向链表的末尾插入数据是一样的 void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem )列表项的删除 UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove );pxItemToRemove :要删除的列表项 列表的遍历 列表结构体中的pxIndex是用来遍历链表的在说列表项插入的时候也用到了列表的遍历具体代码如下 for( pxIterator ( ListItem_t * ) ( pxList-xListEnd ); pxIterator-pxNext-xItemValue xValueOfInsertion; pxIterator pxIterator-pxNext ) FreeRTOS提供了一个函数来完成列表的遍历这个函数是listGET_OWNER_OF_NEXT_ENTRY。每调用一次该函数pxIndex变量就会指向下一个列表项并且返回这个列表项的pxOwner变量值 #define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \ { \ List_t * const pxConstList ( pxList ); \/* Increment the index to the next item and return the item, ensuring */ \/* we dont return the marker used at the end of the list. */ \( pxConstList )-pxIndex ( pxConstList )-pxIndex-pxNext; \if( ( void * ) ( pxConstList )-pxIndex ( void * ) ( ( pxConstList )-xListEnd ) ) \{ \( pxConstList )-pxIndex ( pxConstList )-pxIndex-pxNext; \} \( pxTCB ) ( pxConstList )-pxIndex-pvOwner; \ }pxTCB用来保存pxIndex所指向的列表项pvOwner变量值。pxList是要遍历的列表 将pxIndex指向下一个列表项 ( pxConstList )-pxIndex ( pxConstList )-pxIndex-pxNext;如果指向的列表项是xListEnd 表示已经到了列表末尾然后跳过末尾再一次重新指向列表的第一个列表项。 if( ( void * ) ( pxConstList )-pxIndex ( void * ) ( ( pxConstList )-xListEnd ) ) \{ \( pxConstList )-pxIndex ( pxConstList )-pxIndex-pxNext; \} 将pxIndex所指向的新列表项的pvOwner赋值给pxTCB ( pxConstList )-pxIndex ( pxConstList )-pxIndex-pxNext; 列表项的插入和删除实验 实验设计三个任务 start_task创建其他两个任务 task1_task应用任务1控制LED0闪烁用来提示系统正在运行 task2_task列表和列表项操作任务调用列表和列表相关的API并且通过串口输出相应的信息来观察这些API函数的运行过程。 任务设置 #define START_STACK_SIZE 128 #define START_TASK_PIO 1 TaskHandle_t Start_Handler; void start_task(void * pvParameters);#define TASK1_STACK_SIZE 128 #define TASK1_TASK_PIO 2 TaskHandle_t Task1_Handler; void task1_task(void * pvParameters);#define TASK2_STACK_SIZE 128 #define TASK2_TASK_PIO 3 TaskHandle_t Task2_Handler; void task2_task(void * pvParameters);列表项和列表的定义 //定义一个测试用的列表和是哪个列表项 List_t TestList; ListItem_t ListItem1; ListItem_t ListItem2; ListItem_t ListItem3;main函数 int main(void) {HAL_Init(); //初始化HAL库 Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhzdelay_init(180); //初始化延时函数uart_init(115200); //初始化串口LED_Init(); //初始化LED KEY_Init(); //初始化按键SDRAM_Init(); //初始化SDRAMLCD_Init(); //初始化LCDPOINT_COLOR RED;LCD_ShowString(30,10,200,16,16,Apollo STM32F4/F7); LCD_ShowString(30,30,200,16,16,FreeRTOS Examp 7-1);LCD_ShowString(30,50,200,16,16,list and listItem);LCD_ShowString(30,70,200,16,16,ATOMALIENTEK);LCD_ShowString(30,90,200,16,16,2016/10/9);//创建开始任务xTaskCreate(start_task,start_task,START_STACK_SIZE,NULL,START_TASK_PIO,Start_Handler);vTaskStartScheduler(); } 任务函数 //开始任务任务函数 void start_task(void * pvParameters) {taskENTER_CRITICAL(); //进入临界区//创建任务xTaskCreate(task1_task,task1_task,TASK1_STACK_SIZE,NULL,TASK1_TASK_PIO,Task1_Handler);xTaskCreate(task2_task,task1_task,TASK2_STACK_SIZE,NULL,TASK2_TASK_PIO,Task2_Handler);vTaskDelete(Start_Handler);//退出临界区taskEXIT_CRITICAL(); }//task1任务函数 void task1_task(void * pvParameters) {while(1){LED0 !LED0;vTaskDelay(500);} } //list任务函数 void task2_task(void * pvParameters) {//初始化列表和列表项vListInitialise(TestList);vListInitialiseItem(ListItem1);vListInitialiseItem(ListItem2);vListInitialiseItem(ListItem3);ListItem1.xItemValue40;ListItem2.xItemValue 60;ListItem3.xItemValue50;//第二步打印列表和其他列表项的地址printf(/*******************列表和列表项地址*******************/\r\n);printf(项目 地址 \r\n);printf(TestList %#x \r\n,(int)TestList);printf(TestList-pxIndex %#x \r\n,(int)TestList.pxIndex);printf(TestList-xListEnd %#x \r\n,(int)(TestList.xListEnd));printf(ListItem1 %#x \r\n,(int)ListItem1);printf(ListItem2 %#x \r\n,(int)ListItem2);printf(ListItem3 %#x \r\n,(int)ListItem3);printf(/************************结束**************************/\r\n);printf(按下KEY_UP键继续!\r\n\r\n\r\n);while(KEY_Scan(0)!WKUP_PRES) delay_ms(10); //第三步向列表TestList添加列表项ListItem1并通过串口打印所有//列表项中成员变量pxNext和pxPrevious的值通过这两个值观察列表//项在列表中的连接情况。vListInsert(TestList,ListItem1); //插入列表项ListItem1printf(/******************添加列表项ListItem1*****************/\r\n);printf(项目 地址 \r\n);printf(TestList-xListEnd-pxNext %#x \r\n,(int)(TestList.xListEnd.pxNext));printf(ListItem1-pxNext %#x \r\n,(int)(ListItem1.pxNext));printf(/*******************前后向连接分割线********************/\r\n);printf(TestList-xListEnd-pxPrevious %#x \r\n,(int)(TestList.xListEnd.pxPrevious));printf(ListItem1-pxPrevious %#x \r\n,(int)(ListItem1.pxPrevious));printf(/************************结束**************************/\r\n);printf(按下KEY_UP键继续!\r\n\r\n\r\n);while(KEY_Scan(0)!WKUP_PRES) delay_ms(10); //第四步向列表TestList添加列表项ListItem2并通过串口打印所有//列表项中成员变量pxNext和pxPrevious的值通过这两个值观察列表//项在列表中的连接情况。vListInsert(TestList,ListItem2); //插入列表项ListItem2printf(/******************添加列表项ListItem2*****************/\r\n);printf(项目 地址 \r\n);printf(TestList-xListEnd-pxNext %#x \r\n,(int)(TestList.xListEnd.pxNext));printf(ListItem1-pxNext %#x \r\n,(int)(ListItem1.pxNext));printf(ListItem2-pxNext %#x \r\n,(int)(ListItem2.pxNext));printf(/*******************前后向连接分割线********************/\r\n);printf(TestList-xListEnd-pxPrevious %#x \r\n,(int)(TestList.xListEnd.pxPrevious));printf(ListItem1-pxPrevious %#x \r\n,(int)(ListItem1.pxPrevious));printf(ListItem2-pxPrevious %#x \r\n,(int)(ListItem2.pxPrevious));printf(/************************结束**************************/\r\n);printf(按下KEY_UP键继续!\r\n\r\n\r\n);while(KEY_Scan(0)!WKUP_PRES) delay_ms(10); //第五步向列表TestList添加列表项ListItem3并通过串口打印所有//列表项中成员变量pxNext和pxPrevious的值通过这两个值观察列表//项在列表中的连接情况。vListInsert(TestList,ListItem3); //插入列表项ListItem3printf(/******************添加列表项ListItem3*****************/\r\n);printf(项目 地址 \r\n);printf(TestList-xListEnd-pxNext %#x \r\n,(int)(TestList.xListEnd.pxNext));printf(ListItem1-pxNext %#x \r\n,(int)(ListItem1.pxNext));printf(ListItem3-pxNext %#x \r\n,(int)(ListItem3.pxNext));printf(ListItem2-pxNext %#x \r\n,(int)(ListItem2.pxNext));printf(/*******************前后向连接分割线********************/\r\n);printf(TestList-xListEnd-pxPrevious %#x \r\n,(int)(TestList.xListEnd.pxPrevious));printf(ListItem1-pxPrevious %#x \r\n,(int)(ListItem1.pxPrevious));printf(ListItem3-pxPrevious %#x \r\n,(int)(ListItem3.pxPrevious));printf(ListItem2-pxPrevious %#x \r\n,(int)(ListItem2.pxPrevious));printf(/************************结束**************************/\r\n);printf(按下KEY_UP键继续!\r\n\r\n\r\n);while(KEY_Scan(0)!WKUP_PRES) delay_ms(10); //第六步删除ListItem2并通过串口打印所有列表项中成员变量pxNext和//pxPrevious的值通过这两个值观察列表项在列表中的连接情况。uxListRemove(ListItem2); //删除ListItem2printf(/******************删除列表项ListItem2*****************/\r\n);printf(项目 地址 \r\n);printf(TestList-xListEnd-pxNext %#x \r\n,(int)(TestList.xListEnd.pxNext));printf(ListItem1-pxNext %#x \r\n,(int)(ListItem1.pxNext));printf(ListItem3-pxNext %#x \r\n,(int)(ListItem3.pxNext));printf(/*******************前后向连接分割线********************/\r\n);printf(TestList-xListEnd-pxPrevious %#x \r\n,(int)(TestList.xListEnd.pxPrevious));printf(ListItem1-pxPrevious %#x \r\n,(int)(ListItem1.pxPrevious));printf(ListItem3-pxPrevious %#x \r\n,(int)(ListItem3.pxPrevious));printf(/************************结束**************************/\r\n);printf(按下KEY_UP键继续!\r\n\r\n\r\n);while(KEY_Scan(0)!WKUP_PRES) delay_ms(10); //第七步删除ListItem2并通过串口打印所有列表项中成员变量pxNext和//pxPrevious的值通过这两个值观察列表项在列表中的连接情况。TestList.pxIndexTestList.pxIndex-pxNext; //pxIndex向后移一项这样pxIndex就会指向ListItem1。vListInsertEnd(TestList,ListItem2); //列表末尾添加列表项ListItem2printf(/***************在末尾添加列表项ListItem2***************/\r\n);printf(项目 地址 \r\n);printf(TestList-pxIndex %#x \r\n,(int)TestList.pxIndex);printf(TestList-xListEnd-pxNext %#x \r\n,(int)(TestList.xListEnd.pxNext));printf(ListItem2-pxNext %#x \r\n,(int)(ListItem2.pxNext));printf(ListItem1-pxNext %#x \r\n,(int)(ListItem1.pxNext));printf(ListItem3-pxNext %#x \r\n,(int)(ListItem3.pxNext));printf(/*******************前后向连接分割线********************/\r\n);printf(TestList-xListEnd-pxPrevious %#x \r\n,(int)(TestList.xListEnd.pxPrevious));printf(ListItem2-pxPrevious %#x \r\n,(int)(ListItem2.pxPrevious));printf(ListItem1-pxPrevious %#x \r\n,(int)(ListItem1.pxPrevious));printf(ListItem3-pxPrevious %#x \r\n,(int)(ListItem3.pxPrevious));printf(/************************结束**************************/\r\n\r\n\r\n);while(1){LED1!LED1;vTaskDelay(1000); //延时1s也就是1000个时钟节拍 } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子政务网站建设要求个人网页制作模板三张

前言 除了基本的数组,还有其他高级的数据结构,用于更复杂的数据存储和检索需求。其中,HashMap 是 Java 集合框架中的一部分,用于存储键值对(key-value pairs)。HashMap 允许我们通过键来快速查找和检索值&…

网站建设的意义与目的pc端软件下载

1 官方参考 若依官方文档提供了一种解决方式:前端手册 | RuoYi 若依文档给的已经很明白了,但如果子路径 /admin 发生改变,修改起来就感觉比较费事了,毕竟要修改4个文件。 这里咱们把子路径抽取出来,放到环境配置文件中…

基于网站开发的appwordpress建淘宝客网站

由于当今社会经济的飞速发展,各个方向的业务都不免接触到跨省、跨市以及跨国办公的需要,随之而来的远程操作的不方便,加载缓慢,传输文件时间过长等困难,如何在万里之外实现远程办公呢?我们以以下几点进行阐…

成都网站空间创新互联WordPress_posts

建造者模式(Builder Pattern),也被称为生成器模式,是一种创建型设计模式,主要用于解决复杂对象的构建问题。建造者模式的主要特点是: 1.分离构建与表示:将一个复杂对象的构建与它的表示分离&…

东莞住房建设网站的网网站流量统计怎么做的

鼠标可谓是用户们在使用电脑时候的必备外接设备呢!适合你自己的鼠标设置也绝对能够优化你的Mac使用体验!想要更好的Mac体验就试试用Steermouse Mac版吧。它通过软件来自由设置你的鼠标操作!在这款万能鼠标设置工具中,用户可以在偏…

做网站服务器软件wordpress织梦哪个好

目录 特殊日期 0特殊日期 - 蓝桥云课 (lanqiao.cn) 最大距离 0最大距离 - 蓝桥云课 (lanqiao.cn) 最长递增 0最长递增 - 蓝桥云课 (lanqiao.cn) 缩位求和 0缩位求和 - 蓝桥云课 (lanqiao.cn) ISBN号码 0ISBN号码 - 蓝桥云课 (lanqiao.cn) 串的处理 0串的处理 - 蓝桥…

网站建设费如何账务处理凡客优品家居官方网站

前言 部署在 Kubernetes 集群中的应用,在升级发布时可能会存在的问题: 1,由于 Kuberneter 底层 Pod 容器生命周期与网络组件生命周期是异步管理的,在升级时如果没有处理好应用优雅退出的问题,就很容易导致 http 访问请…

vite7-webos网页版os管理|Vue3+Vite7+ArcoDesign搭建pc端os后台系统

最新版研发Vite7+Vue3+Pinia3+Arco仿macos/windows网页版webos管理系统。 vite7-webos原创基于vite7.1+vue3.5+pinia3+arco-design+echarts从0-1搭建pc网页版os式管理系统模板。支持macos+windows两种桌面布局风格、自…

三门问题的多种解法,总有一个你看得懂

三门问题: 三门问题是一个经典的概率问题,也被称为蒙提霍尔问题,最初由美国数学家蒙提霍尔提出。这个问题涉及到概率、逻辑和心理学等多个领域,引发了大量的争论和讨论。 下面是问题的描述。 假设你正在参加一个游…

hbase学习——创建springboot+hbase项目

在IDEA中创建项目 项目类型: Spring Initializr项目名: HbaseTest 包名: com.example.demo Java版本: 8 依赖: Spring Web, Spring Boot DevTools添加Maven依赖 (pom.xml) xml4.0.0org.springframework.bootspring-boo…

python_Day22笔记

今日内容大纲Python数据分析的优势 Python数据分析环境搭建 Jupyter Lab 和 Jupyter Notebook初体验 配置PyCharm连接Jupyter Numpy详解属性 创建 内置函数 运算1.Python数据处理分析简介Python作为当下最为流行的编程…

东阿网站建设产品wordpress后台英文

一、谷歌内置的审查工具(v17.0)。右键点击审查(CtrlShirtAlt)浏览器下方会出现审查框,刷新网页就会出现下图所示,先后点击“netword”-->在下方选中资源(如下图的1.php)-->点击headers二、httpwatch。ShirtF2打开httpwatch点击Record按钮&#xff…

黄南州网站建设公司做ppt常用的网站

随着使用时间的增长,我们会发现Mac电脑的存储空间越来越少,这时候我们就需要对Mac电脑进行清理,以释放更多的存储空间。那么,Mac空间不足怎么解决呢? 1.清理垃圾文件 Mac空间不足怎么解决?首先要做的就是…

网站建设是属于虚拟产品吗专门做折扣的网站有哪些

目录 无法加载响应数据解决 无法加载响应数据 上线项目时 改用服务器上的redis和MySQL 出现请求能请求到后端,后端也能正常返回数据,但是在前端页面会显示 以为是跨域问题,但是环境还在本地,排除跨域问题以为是服务器问题&#…

安装Wordpress的免费空间网站优化和提升网站排名怎么做

文章目录 Pre概述什么是非对称加密算法?如何工作?示例:RSA算法特点和优势ECC:另一种非对称加密算法 Code生成公钥和私钥私钥加密私钥加密私钥解密 ( 行不通 )私钥加密公钥解密公钥加密和公钥解密 (行不通)保…

衡阳县做淘宝网站建设网站托管服务协议

1.什么是RabbitMQ RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等&…

网站百度v认证网站栏目结构

链接:http://www.2cto.com/database/201207/139330.html转载于:https://www.cnblogs.com/nycj/p/5661151.html

.NET周刊【9月第1期 2025-09-07】

国内文章 关于.net9发布单体exe程序无法打开问题详解 https://www.cnblogs.com/sc-Free-Die/p/19075260 该文章探讨了使用.NET 9开发的Winform程序在发布为x64单文件exe后出现的异常。文章描述了在不同架构下(x64与x86…

第七章 Cesium 3D 粒子烟花效果案例解析:从原理到完整代码 - 详解

第七章 Cesium 3D 粒子烟花效果案例解析:从原理到完整代码 - 详解2025-09-22 21:37 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !i…

郑州专业网站制作的公司哪家好最大的免费网站建设

今年5月,Facebook AI研究院(FAIR)发表了他们的研究成果fairseq,在fairseq中,他们使用了一种新型的卷积神经网络来做语言翻译,比循环神经网络的速度快了9倍,而且准确性也是现有模型中最高的。此外…