c++线程(c++线程同步有几种方法)
本篇文章给大家谈谈c++线程,以及c++线程同步有几种方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
c语言怎么创建线程和使用
1、添加线程相关的头文件:#includepthread.h
2、线程创建函数是pthread_create()函数,该函数的原型为:
int pthread_create(pthread_t *thread,pthread_attr_t *attr,void* (*start_routine)(void*),void *arg);
3、线程退出函数是pthread_exit()函数,该函数的原型为:
void pthread_exit(void *retval);
创建线程的示例程序如下:
/*
**程序说明:创建线程函数pthread_create()函数的使用。
*/
#include 搜顷带stdio.h
#include pthread.h
#include unistd.h
#include stdlib.h
#include string.h
//打印标识符的函数
void print_ids(const char *str)
{
pid_t pid; //进程标识符
pthread_t tid; //线程标识符乎数
pid=getpid(); //获得进程号
tid=pthread_self(); //获得线程号
printf("%s pid:%u tid:%u (0x%x)\n",
str,(unsigned int)pid,(unsigned int)tid,(unsigned int)tid); //打印进程号和线程号
}
//线程函数
void* pthread_func(void *arg)
{
print_ids("new thread:"); //打印新建线程号
return 世芦((void*)0);
}
//主函数
int main()
{
int err;
pthread_t ntid; //线程号
err=pthread_create(ntid,NULL,pthread_func,NULL); //创建一个线程
if(err != 0)
{
printf("create thread failed:%s\n",strerror(err));
exit(-1);
}
print_ids("main thread:"); //打印主线程号
sleep(2);
return 0;
}
C语言如何终止线程
有三种方式可以终止线程,具体调用函数依赖于使用的线程系统。
方法:
1.在线程入口函数中,调用return。即退出线程入口函数,可以实现终止当前线程效果;
2.在线程执行的任意函数,调用当前线程退出函数,可以退出当前线程高脊;
3.在任意位置,调用线程终止函数,并传入要终止线戚差渗程的标识符,即pid,可以实现终止对应线程效果。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编庆郑程语言。
C语言如何创建线程(windows)系统中
下面为C语言调用WIN API实现创建埋肆蚂线程:
1,导入windows.h头文件
2,声明实现方法DWORD WINAPI ThreadProc1( LPVOID lpParam ) {}
3,在main()方法中调用 CreateThread(NULL,0 ,ThreadProc1,NULL,0,NULL);
要注意的弯埋是主线程不能结束,如果主线程结束,则它的子线程也会被杀死。
#include windows.h
#include stdio.h
#includetime.h
DWORD WINAPI ThreadProc1( LPVOID lpParam )
{
int i=0;
time_t timer;
while(1)
{
timer=time(NULL);
printf("The current time is: %s\n",asctime(localtime(timer)));
sleep(1);
}
}
void main()
{
int i=0;
//让主线程进入循环,主线程雹塌若退出,子线程1,2会被系统“杀死”
//创建线程1
CreateThread(
NULL, // default security attributes
0, // use default stack size
ThreadProc1, // thread function
NULL, // argument to thread function
0, // use default creation flags
NULL); // returns the thread identifier
for(;;)
{
;
}
}
[img]关于c++线程和c++线程同步有几种方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。