c语言多线程编程实例(C语言中 怎么实现双线程 或者 父子线程啊)

2025-02-20 17:10:03 0

c语言多线程编程实例(C语言中 怎么实现双线程 或者 父子线程啊)

本文目录

C语言中 怎么实现双线程 或者 父子线程啊

通常使用CreateThread函数来创建新的线程.(Unix下使用pthread_create函数)首先指出,线程与线程之间,是并列关系,不会存在“父子线程“的概念.在Windows平台下,CreateThread函数包含在 Windows.h 文件内,包含此文件即可正常使用.以下为CreateThread函数的声明:HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,//指向安全性属性描述结构体的 //指针,通常可以忽略的. SIZE_T dwStackSize,//指定新线程初始的栈大小,若不关心,可以用0填充,来要求使用 //默认值 LPTHREAD_START_ROUTINE lpStartAddress,//用来充当线程的函数的指针. LPVOID lpParameter,//要传递给函数的参数,这个值本身就是那个参数,而不是参数的地址 DWORD dwCreationFlags,//创建的方式,0表示正常,创建后立即开始运行 LPDWORD lpThreadId//用来接受函数反馈的线程ID的指针.);用来充当新的线程的函数格式:DWORD WINAPI ThreadProc(LPVOID);CreateThread函数若成功了,返回新线程的句柄,若失败了,则返回NULL.若用CREATE_SUSPENDED填充dwCreation Flags则创建的线程先挂起来,并不直接开始运行,要用ResumeThread函数恢复线程,才能继续运行.

C语言,windows多线程编程

点量Http、FTP多线程断点续传下载组件(下载DLL)的开发目的是让用户可以无需关心Http/FTP协议的具体细节,只需要几十行甚至几行代码,便可以实现一个功能完善的Http/FTP下载软件。点量Http/FTP下载组件(DLL)支持多线程、断点续传、显示详细下载过程、自动查找镜像网址、支持代理传输等完善的功能。 点量Http、FTP下载内核源码使用高效的c++代码编写,提供标准的动态链接库(DLL),可供C/C++、Delphi、C#、Java、VB等语言和各常用开发环境调用,让您完全像调用系统API一样的调用。 点量Http/FTP组件的功能简介:标准Http和FTP下载支持:完全标准的Http和FTP协议支持,内部通过网址自动区分是Http还是FTP下载。 极速下载(2.0以后版本):超越国内绝大多数下载软件的下载速度。新版内核在2M ADSL的环境下下载,有些文件的速度可以达到1400K字节/秒以上,超过了带宽的极限。下载速度可以用极速形容。 多线程传输:可以将文件自动分块,并采用多线程下载。并可自由设置线程数目。 断点续传:点量Http/FTP有优秀的断点续传支持,每次启动自动从上次下载的位置开始,不需要重复下载。 提供详细的下载详情接口(2.0以后版本):可以看到整个下载过程的步骤,比如开启了多少线程、服务器的应答过程、错误信息等。 支持多种高级设置:设置线程数目、磁盘缓存大小、搜索镜像服务器的详细参数设置、下载文件完成后同步文件为服务器上的文件时间、下载过程中可以自定义文件临时后缀、未完成的文件设为隐藏属性。 支持磁盘缓存:点量Http/FTP下载DLL支持设置磁盘缓存,减少对磁盘的读写,并提升下载速度。 支持设置Refer:点量Http/FTP下载组件支持设置下载时的Refer,以便可以绕过一些防盗链的网站,直接下载内容。 限速功能:点量Http/FTP下载组件可方便的设置下载限速。 多种磁盘分配方式:点量Http/FTP下载组件支持预分配和边下载边分配两种磁盘方式,满足多种下载需求。 自动搜索镜像加速:点量Http/FTP内置了镜像搜索功能,在下载文件的同时,会自动搜索哪些其它网站还有这个文件,自动从其它网址下载加速。 可提供源码:支付一定的费用,便可以获得全部的点量Http/FTP下载组件的源代码,免除您的所有后顾之忧。 良好的服务:作为点量软件旗下的软件,可享受到点量软件的优秀服务,我们的服务让您如同拥有一个称心的专业员工。点量Http/FTP 下载组件可以适用于任何Http和FTP下载的领域,让您可以在1天内完成一个完整的Http下载软件的全部功能。比如,您可以用于产品的升级、文件的下载和传输等。 点量Http/FTP内核可以为您带来:1、大大节省您的开发成本:了解Http和FTP的协议,再去编码、测试,即使对于一个非常有经验的开发人员来说,也需要较长期的时间,此间耗费的人力资源成本和管理成本可谓不少。而使用点量Http/FTP,您就不需要从制造轮子开始制造您的汽车,将注意力集中于车的设计而不是基础设备的建设。何况我们的产品性能是如此优越!2、强有力的技术支持:作者长期从事下载技术的研发,所提供的技术支持相当于您雇佣了一位具有丰富经验,无需从头学习的开发人员,可以在您的系统建设过程中为您提供整体系统架设的意见。如果您是个人作为非商业目的使用,您可以自由、免费的使用点量Http/FTP下载组件内核库和演示程序,也期待收到您反馈的意见和建议;如果您是商业使用,那么您需要联系作者申请产品的商业授权。

c语言 多线程套接字编程

#include 《stdlib.h》#include 《stdio.h》#include 《errno.h》#include 《string.h》#include 《sys/types.h》#include 《netinet/in.h》#include 《sys/wait.h》#include 《sys/socket.h》 #define PORT 5000 // The port which is communicate with server#define BACKLOG 10#define LENGTH 512 // Buffer length int main (){ int sockfd; // Socket file descriptor int nsockfd; // New Socket file descriptor int num; int sin_size; // to store struct size char sdbuf; // Send buffer struct sockaddr_in addr_local; struct sockaddr_in addr_remote; char sendstr= {“123456789 abcde“}; /* Get the Socket file descriptor */ if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ) { printf (“ERROR: Failed to obtain Socket Despcritor.\n“); return (0); } else { printf (“OK: Obtain Socket Despcritor sucessfully.\n“); } /* Fill the local socket address struct */ addr_local.sin_family = AF_INET; // Protocol Family addr_local.sin_port = htons(PORT); // Port number addr_local.sin_addr.s_addr = INADDR_ANY; // AutoFill local address bzero(&(addr_local.sin_zero), 8); // Flush the rest of struct /* Blind a special Port */ if( bind(sockfd, (struct sockaddr*)&addr_local, sizeof(struct sockaddr)) == -1 ) { printf (“ERROR: Failed to bind Port %d.\n“,PORT); return (0); } else { printf(“OK: Bind the Port %d sucessfully.\n“,PORT); } /* Listen remote connect/calling */ if(listen(sockfd,BACKLOG) == -1) { printf (“ERROR: Failed to listen Port %d.\n“, PORT); return (0); } else { printf (“OK: Listening the Port %d sucessfully.\n“, PORT); } while(1) { sin_size = sizeof(struct sockaddr_in); /* Wait a connection, and obtain a new socket file despriptor for single connection */ if ((nsockfd = accept(sockfd, (struct sockaddr *)&addr_remote, &sin_size)) == -1) { printf (“ERROR: Obtain new Socket Despcritor error.\n“); continue; } else { printf (“OK: Server has got connect from %s.\n“, inet_ntoa(addr_remote.sin_addr)); } /* Child process */ if(!fork()) { printf(“You can enter string, and press ’exit’ to end the connect.\n“); while(strcmp(sdbuf,“exit“) != 0) { scanf(“%s“, sdbuf); if((num = send(nsockfd, sdbuf, strlen(sdbuf), 0)) == -1) { printf(“ERROR: Failed to sent string.\n“); close(nsockfd); exit(1); } printf(“OK: Sent %d bytes sucessful, please enter again.\n“, num); } } close(nsockfd); while(waitpid(-1, NULL, WNOHANG) 》 0); } }

用C语言在windows或者Linux上面,编写一个多线程程序

#include《stdio.h》#include《stdlib.h》#include《windows.h》DWORD WINAPI ThreadProc(LPVOID lpParam) { int *pt=(int*)lpParam; printf(“I am tread %d\r\n“,*pt);}int main(){ const int Count=4; int datas); } system(“PAUSE“); return EXIT_SUCCESS; }

TC(C语言)中的多线程

可以不用。用C语言的计数器就好,不过比较麻烦。。。如果用多线程,你首先需要了解线程的含义,另外编译的时候需要加参数,编程的部分比较简单,头文件需要:#include 《process.h》然后创建线程使用函数:_beginthread()销毁线程函数:_endthread() TC3.0也就是增加了个鼠标,修改了一些bug,更新了一下界面而已,编译器是和2.0一样的。

如何用c语言实现2线程

#include《bios.h》#include《time.h》#include《stdio.h》int main(){ char c; while(1) { if(bioskey(1)!=0){ c=getch(); if(c==’q’)break; system(“pause“); } printf(“Hello world!\n“); }}

高手进,关于C语言在windows上建立多线程的问题(VC6.0上实现)

东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c multiple thread programming in linux *author : falcon *E-mail : tunzhj03@st.lzu.edu.cn */#include 《pthread.h》#include 《stdio.h》#include 《sys/time.h》#include 《string.h》#define MAX 10pthread_t thread;pthread_mutex_t mut;int number=“0“, i;void *thread1(){ printf (“thread1 : I’m thread 1\n“); for (i = 0; i 《 MAX; i++) { printf(“thread1 : number = %d\n“,number); pthread_mutex_lock(&mut); number++; pthread_mutex_unlock(&mut); sleep(2); }printf(“thread1 :主函数在等我完成任务吗?\n“); pthread_exit(NULL);}void *thread2(){ printf(“thread2 : I’m thread 2\n“); for (i = 0; i 《 MAX; i++) { printf(“thread2 : number = %d\n“,number); pthread_mutex_lock(&mut); number++; pthread_mutex_unlock(&mut); sleep(3); }printf(“thread2 :主函数在等我完成任务吗?\n“); pthread_exit(NULL);}void thread_create(void){ int temp; memset(&thread, 0, sizeof(thread)); //comment1 /*创建线程*/ if((temp = pthread_create(&thread, NULL, thread1, NULL)) != 0) //comment2 printf(“线程1创建失败!\n“); else printf(“线程1被创建\n“); if((temp = pthread_create(&thread, NULL, thread2, NULL)) != 0) //comment3 printf(“线程2创建失败“); else printf(“线程2被创建\n“);}void thread_wait(void){ /*等待线程结束*/ if(thread !=0) { //comment4 pthread_join(thread,NULL); printf(“线程1已经结束\n“); } if(thread !=0) { //comment5 pthread_join(thread,NULL); printf(“线程2已经结束\n“); }}int main(){ /*用默认属性初始化互斥锁*/ pthread_mutex_init(&mut,NULL); printf(“我是主函数哦,我正在创建线程,呵呵\n“); thread_create(); printf(“我是主函数哦,我正在等待线程完成任务阿,呵呵\n“); thread_wait(); return 0;}下面我们先来编译、执行一下引文: falcon@falcon:~/program/c/code/ftp$ gcc -lpthread -o thread_example thread_example.cfalcon@falcon:~/program/c/code/ftp$ ./thread_example我是主函数哦,我正在创建线程,呵呵线程1被创建线程2被创建我是主函数哦,我正在等待线程完成任务阿,呵呵thread1 : I’m thread 1thread1 : number = 0thread2 : I’m thread 2thread2 : number = 1thread1 : number = 2thread2 : number = 3thread1 : number = 4thread2 : number = 5thread1 : number = 6thread1 : number = 7thread2 : number = 8thread1 : number = 9thread2 : number = 10thread1 :主函数在等我完成任务吗?线程1已经结束thread2 :主函数在等我完成任务吗?线程2已经结束实例代码里头的注释应该比较清楚了吧,下面我把网路上介绍上面涉及到的几个函数和变量给引用过来。引文: 线程相关操作一 pthread_tpthread_t在头文件/usr/include/bits/pthreadtypes.h中定义: typedef unsigned long int pthread_t; 它是一个线程的标识符。二 pthread_create函数pthread_create用来创建一个线程,它的原型为: extern int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t *__attr, void *(*__start_routine) (void *), void *__arg)); 第一个参数为指向线程标识符的指针,第二个参数用来设置线程属性,第三个参数是线程运行函数的起始地址,最后一个参数是运行函数的参数。这里,我们的函数thread不需要参数,所以最后一个参数设为空指针。第二个参数我们也设为空指针,这样将生成默认属性的线程。对线程属性的设定和修改我们将在下一节阐述。当创建线程成功时,函数返回0,若不为0则说明创建线程失败,常见的错误返回代码为EAGAIN和EINVAL。前者表示系统限制创建新的线程,例如线程数目过多了;后者表示第二个参数代表的线程属性值非法。创建线程成功后,新创建的线程则运行参数三和参数四确定的函数,原来的线程则继续运行下一行代码。三 pthread_join pthread_exit 函数pthread_join用来等待一个线程的结束。函数原型为: extern int pthread_join __P ((pthread_t __th, void **__thread_return)); 第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。一个线程的结束有两种途径,一种是象我们上面的例子一样,函数结束了,调用它的线程也就结束了;另一种方式是通过函数pthread_exit来实现。它的函数原型为: extern void pthread_exit __P ((void *__retval)) __attribute__ ((__noreturn__)); 唯一的参数是函数的返回代码,只要pthread_join中的第二个参数thread_return不是NULL,这个值将被传递给 thread_return。最后要说明的是,一个线程不能被多个线程等待,否则第一个接收到信号的线程成功返回,其余调用pthread_join的线程则返回错误代码ESRCH。 在这一节里,我们编写了一个最简单的线程,并掌握了最常用的三个函数pthread_create,pthread_join和pthread_exit。下面,我们来了解线程的一些常用属性以及如何设置这些属性。互斥锁相关互斥锁用来保证一段时间内只有一个线程在执行一段代码。一 pthread_mutex_init函数pthread_mutex_init用来生成一个互斥锁。NULL参数表明使用默认属性。如果需要声明特定属性的互斥锁,须调用函数 pthread_mutexattr_init。函数pthread_mutexattr_setpshared和函数 pthread_mutexattr_settype用来设置互斥锁属性。前一个函数设置属性pshared,它有两个取值, PTHREAD_PROCESS_PRIVATE和PTHREAD_PROCESS_SHARED。前者用来不同进程中的线程同步,后者用于同步本进程的不同线程。在上面的例子中,我们使用的是默认属性PTHREAD_PROCESS_ PRIVATE。后者用来设置互斥锁类型,可选的类型有PTHREAD_MUTEX_NORMAL、PTHREAD_MUTEX_ERRORCHECK、 PTHREAD_MUTEX_RECURSIVE和PTHREAD _MUTEX_DEFAULT。它们分别定义了不同的上所、解锁机制,一般情况下,选用最后一个默认属性。二 pthread_mutex_lock pthread_mutex_unlock pthread_delay_np pthread_mutex_lock声明开始用互斥锁上锁,此后的代码直至调用pthread_mutex_unlock为止,均被上锁,即同一时间只能被一个线程调用执行。当一个线程执行到pthread_mutex_lock处时,如果该锁此时被另一个线程使用,那此线程被阻塞,即程序将等待到另一个线程释放此互斥锁。注意:1 需要说明的是,上面的两处sleep不光是为了演示的需要,也是为了让线程睡眠一段时间,让线程释放互斥锁,等待另一个线程使用此锁。下面的参考资料1里头说明了该问题。但是在linux下好像没有pthread_delay_np那个函数(我试了一下,提示没有定义该函数的引用),所以我用了sleep来代替,不过参考资料2中给出另一种方法,好像是通过pthread_cond_timedwait来代替,里头给出了一种实现的办法。2 请千万要注意里头的注释comment1-5,那是我花了几个小时才找出的问题所在。如果没有comment1和comment4,comment5,将导致在pthread_join的时候出现段错误,另外,上面的comment2和comment3是根源所在,所以千万要记得写全代码。因为上面的线程可能没有创建成功,导致下面不可能等到那个线程结束,而在用pthread_join的时候出现段错误(访问了未知的内存区)。另外,在使用memset的时候,需要包含string.h头文件哦

我想学习 C++多线程编程,请问各位大哥大姐什么教材比较好

先,C++肯定要好了。C语言程序设计本书描述平实,示例丰富,适合有一定编程? ...C++编程思想第2卷:实用编程技术http://book.jqcq.com/product/413352.html编程技术和最佳的实践方法,深入探究了异常处理方法和异常安全设计;介绍C++的字符串、输入输出流、STL算法、容器和模板的现代用法,包括模板元编程;解释多重继承问题的难点,展示RTTI的实际使用,描述了典型的设计模式及其实现,特别介绍被认为是标准C++下一版特征之一的多线程处理编程技术,并提供了最新的研究成果? ...

c语言多线程编程实例(C语言中 怎么实现双线程 或者 父子线程啊)

本文编辑:admin

更多文章:


workoutaschedule是什么意思(work out it和work it out的区别是什么)

workoutaschedule是什么意思(work out it和work it out的区别是什么)

本文目录work out it和work it out的区别是什么work schedule是什么意思workoutaschedulewithyuorpartnerwork out it和work it out的区别是什么work out

2025年2月12日 23:50

messenger下载最新版本(怎样下载MSN messager)

messenger下载最新版本(怎样下载MSN messager)

本文目录怎样下载MSN messagermsn是什么在哪可以下载Install_Messenger最新版如何下载MSN怎样下载MSN messagerMSNMessenger是微软公司推出的即时消息软件,使用MSNMessenger可以与他

2025年4月2日 05:50

“Gush”什么意思?gush in 和flood in的意思与区别

“Gush”什么意思?gush in 和flood in的意思与区别

本文目录“Gush”什么意思gush in 和flood in的意思与区别“Gush”什么意思gush英音:gush in 和flood in的意思与区别gush in 和flood in的意思与区别是:gush in意思是喷在,喷出,倒出

2025年3月5日 01:10

complaint可数还是不可数(cause和reason 2个原因的主要区别和用法)

complaint可数还是不可数(cause和reason 2个原因的主要区别和用法)

本文目录cause和reason 2个原因的主要区别和用法complain名词形式可数吗some children are full of(complain)about the foodcause和reason 2个原因的主要区别和用法区别

2025年3月18日 00:20

图标大全可复制(莲花符号可以复制的)

图标大全可复制(莲花符号可以复制的)

本文目录莲花符号可以复制的符号,花的特殊符号,五个花瓣,就像樱花一样复制给我吧,非常感谢月亮符号实心复制!!!急求!!!!求“天使翅膀”的符号,左右都要,希望能复制!!求一个花形的特殊符号,有的帮我复制一个谁能复制给我那些耐克 阿迪的特殊符

2025年3月11日 09:30

linearlayout和relativelayout(Android中的可视化组件如Button组件、TextView组件、LinearLayout 、RelativeLayout之间有什么区别或关系)

linearlayout和relativelayout(Android中的可视化组件如Button组件、TextView组件、LinearLayout 、RelativeLayout之间有什么区别或关系)

本文目录Android中的可视化组件如Button组件、TextView组件、LinearLayout 、RelativeLayout之间有什么区别或关系android 新建项目 xml 布局 总是RelativeLayout,我想默认的是

2025年3月8日 16:10

fopen打开二进制文件(若要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则打开方式是)

fopen打开二进制文件(若要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则打开方式是)

本文目录若要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则打开方式是若要用 fopen 函数打开一个心得二进制文件,该文件要即能读也能写,则文件的打开方式字符串应该是若要用fopen函数打开一个新的二进制c语言中fop

2025年2月22日 06:40

一直免费的服务器(有没有什么类似teamviewer的服务器远程控制软件,使用起来方便一点的)

一直免费的服务器(有没有什么类似teamviewer的服务器远程控制软件,使用起来方便一点的)

本文目录有没有什么类似teamviewer的服务器远程控制软件,使用起来方便一点的网易公布11个第二批魔兽世界怀旧服免费转移角色服务器,如何评价这波操作魔兽世界怀旧服开放后,玩家会因为月卡问题继续留在免费的服务器中吗有没有什么类似teamv

2025年2月25日 08:40

mysql语句优化(mysql数据库中,数据量很大的表,有什么优化方案么)

mysql语句优化(mysql数据库中,数据量很大的表,有什么优化方案么)

本文目录mysql数据库中,数据量很大的表,有什么优化方案么如何使用phpMyadmin优化MySQL数据库Mysql怎样优化处理mysql数据库中,数据量很大的表,有什么优化方案么个人的观点,这种大表的优化,不一定上来就要分库分表,因为表

2025年3月16日 00:00

scrrun dll(scrrun.dll的基本信息)

scrrun dll(scrrun.dll的基本信息)

本文目录scrrun.dll的基本信息安装程序时出现c;\windows\system32\scrrun.dll因为文件被windows保护怎样注册scrrun.dll文件网上说的scrrun.dll 这个方法不行啊scrrun.dll的解

2025年3月7日 21:50

astronauts翻译(用英语翻译怎么说,急!)

astronauts翻译(用英语翻译怎么说,急!)

本文目录用英语翻译怎么说,急!这句怎么翻译神舟五号资料有翻译成英文的吗英语翻译并回答问题有关于中国太空的故事,要有英语翻译用英语翻译怎么说,急!1. I think most people can live to 80-90 years o

2025年3月17日 06:00

times排名(times排名是什么意思)

times排名(times排名是什么意思)

本文目录times排名是什么意思times世界大学排名times大学排名泰晤士世界大学排名泰晤士排名是什么意思英国的Times排名和QS排名,哪个更权威一些世界大学排名:什么是TIMES排名times大学排名是怎样的times排名是什么意思

2025年2月26日 09:20

mortality什么意思(morbidity and mortality是什么意思)

mortality什么意思(morbidity and mortality是什么意思)

本文目录morbidity and mortality是什么意思proportionate mortality是什么意思及反义词morbidity and mortality是什么意思morbidity and mortality释义发病率

2025年4月2日 09:00

css样式表可以使许多网页同时更新(CSS样式是什么有何用途主要体现在什么方面)

css样式表可以使许多网页同时更新(CSS样式是什么有何用途主要体现在什么方面)

本文目录CSS样式是什么有何用途主要体现在什么方面css能做什么在网页制作中CSS是什么意思在网页中css有什么作用CSS样式是什么有何用途主要体现在什么方面CSS就是一种叫做样式表(stylesheet)的技术。也有的人称之为层叠样式表(

2025年3月21日 18:40

android软件开发方法(怎样开发一个andriod应用)

android软件开发方法(怎样开发一个andriod应用)

本文目录怎样开发一个andriod应用如何自己开发一个app软件怎样开发一个andriod应用开发环境Android应用层使用的开发语言是Java,自然需要用到Java运行环境,无论你在Window是系统还是Mac系统都需要安装JDK,并且

2025年4月5日 19:10

linux 中的 mkdir 什么意思?mkdir函数-linux

linux 中的 mkdir 什么意思?mkdir函数-linux

本文目录linux 中的 mkdir 什么意思mkdir函数-linuxmkdir 是什么linux 中的 mkdir 什么意思mkdir用于创建空白的文件夹,格式为:“mkdir 目录”。在Linux系统中文件夹应该是最常见的文件类型之

2025年2月23日 02:40

phonegap手机版下载(Phonegap怎么用来做安卓APP)

phonegap手机版下载(Phonegap怎么用来做安卓APP)

本文目录Phonegap怎么用来做安卓APPphonegap html5 稳定吗PhoneGap应用开发对策:如何通过苹果审核如何利用PhoneGap制作地图APPphonegap 能将网站打包为APP吗phonegap和android s

2025年2月16日 04:00

duck不必(duck不必下一句)

duck不必(duck不必下一句)

本文目录duck不必下一句女生对你说duck不必一天,一只鸭子对一只小鸡表白,鸭子:我喜欢你,小鸡:你duck不必,鸭子:没想到你深藏blueduck不必是什么意思duck不必是什么梗啥意思duck不必的意思duck不必和book思议是什么

2025年3月8日 10:20

breathe翻译(求U2的《breathe》歌词翻译!!!!!!!)

breathe翻译(求U2的《breathe》歌词翻译!!!!!!!)

本文目录求U2的《breathe》歌词翻译!!!!!!!breathe翻译breathe的汉语意思权志龙的breathe的中文翻译呼吸的英语翻译是什么求U2的《breathe》歌词翻译!!!!!!!16th of June, 9:05, d

2025年2月20日 03:50

google地图手机版下载(华为手机如何可以下载谷歌地图)

google地图手机版下载(华为手机如何可以下载谷歌地图)

本文目录华为手机如何可以下载谷歌地图怎样下载谷歌地图到手机华为手机如何可以下载谷歌地图华为手机怎么用谷歌地图1.打开手机界面,找到“应用市场”图标。2.在“应用市场”的搜索栏中输入“谷歌地图”,点击“搜索”按钮,出现的软件进行下载并且安装。

2025年4月3日 12:00

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索