`
zuoyezhixing
  • 浏览: 4795 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Linux下C多线程(一)

阅读更多

Linux下C语言多线程编程学习一

简单实现多线程需要用到 pthread_create函数和pthread_create函数。先上例子再做解释。

#include <stdio.h>
#include <pthread.h>
#include <stddef.h>
void thread(void){
	int i;
	for(i=0;i<60 ; i++){
		printf("这是子线程!\n");
		sleep(1);
	}
}

int main(void){
	pthread_t id;
	int i,ret;
	ret = pthread_create(&id,NULL,(void *)thread,NULL);
	if(ret!=0){
		printf("创建新显存错误!\n");
		exit(1);
	}
	for(i=0;i<50;i++){
		printf("这是主线程.\n");
                sleep(1);
	}
	pthread_join(id,NULL);
	printf("两个线程都已经运行结束.\n");
	return 0;
}

   Linux下多线程需要用到pthread.h头文件,所以在代码的开始处引入了头文件。在例子中使用到了NULL,所以我们也引入了stddef.h头文件。接下来我们从main函数开始分析代码。

    pthread_t是一个多线程标识符,在pthreadtypes.h中申明,

typedef unsigned long int pthread_t;
 用来记录线程ID的。

  pthread_create函数在pthread.h中声明,如果创建线程成功则返回0,如果返回线程失败则返回非零。

pthread_create函数有四个参数,第一个参数为指向线程标识符的指针,就是我们前边申明的pthread_t id。第二个参数用来设置线程属性,线程属性在下一篇文章中介绍。第三个参数是线程运行函数的起始地址,例子中的多线程函数为thread函数,所以在这里就传入thread函数的地址。最后一个参数是运行函数的参数,例子中thread无参数,所以此处传入NULL。

  pthread_join函数同样在pthread.h中声明,是用来等待一个线程的结束,一般情况线程结束之后需要统一回收资源。pthread_join的第一个参数是需要等待结束的现场ID,其类型为pthread_t,第二个参数是用来存储线程结束后的返回值。

 

   连接时需要使用库libpthread.a,所以在编译必须在选项中加入 -lpthread 选项,例如

  gcc main.c -lpthread -o main.o.

分享到:
评论

相关推荐

    Linux下C语言多线程编程实例

    Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程...

    linux下C语言多线程编程实例

    在Linux环境下进行C语言多线程编程,可以利用POSIX线程库,也称为pthread库。这个库提供了创建、同步和管理线程的一系列接口,使得开发者能够在单个进程中同时执行多个任务,从而提高程序的并行性。下面将详细探讨多...

    linux下C语言多线程编程实例.pdf

    linux下C语言多线程编程实例.pdf

    linux下c语言多线程网页爬虫源代码

    综上所述,"linux下c语言多线程网页爬虫源代码"这个项目涵盖了Linux环境下的C语言编程、网络编程、多线程技术以及网页爬虫的设计和实现。在实际操作中,开发者需要深入理解这些知识点,并结合具体需求来优化爬虫的...

    Linux下的C语言多线程编程[汇编].pdf

    Linux下的C语言多线程编程 Linux下的C语言多线程编程是指在Linux操作系统中使用C语言...Linux下的C语言多线程编程是一种非常重要的编程技术,具有非常广泛的应用前景,在现代计算机系统中发挥着越来越重要的作用。

    linux下c语言实现多线程web服务器

    在Linux环境下,C语言是一种...综上所述,"linux下c语言实现多线程web服务器"项目涵盖了操作系统、网络编程、线程管理、内存操作、并发控制等多个方面,对于理解系统级编程和Web服务的内部工作原理有着重要的实践价值。

    linux下C多线程编程

    linux下C多线程编程,是了解多线程开发不可多得的好文章

    Linux下多线程计算圆周率 C语言

    Linux下多线程计算圆周率 C语言 //实现一个用多线程计算 π(圆周率)的程序。 #include #include #include #include #define N 50000//设定计算次数 #define NUM 2//设定线程数,经过反复实验,在装有1个双核...

    Linux下的多线程编程.pdf

    Linux系统提供了 LinuxThreads 库,它是一个符合 POSIX IO03.1c 标准的内核级多线程函数库。在 LinuxThreads 库中提供了一些多线程编程的关键函数,如 pthread_create() 函数,它可以创建一个新的线程,并执行指定...

    linux中c语言实现多线程ping命令

    c语言实现linux下多线程ping命令,可以ping一个网段,格式为./XX 14.215.177.38 14.215.177.40(以百度ip地址为例)

    Linux多线程 C语言编程关于多线程

    ### Linux多线程 C语言编程知识点总结 #### 一、多线程与多进程编程概述 **多线程**的概念可以追溯到20世纪60年代,然而直到80年代中期,这一机制才被正式引入到Unix系统中。随着计算机硬件的发展及软件需求的增加...

    Linux下的C语言多线程编程

    使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空 间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种...

    linux_下多线程编程 C语言

    在Linux环境下,利用C语言进行多线程编程是一种常见的技术手段,它能够有效地提高程序的并发处理能力,充分利用现代多核处理器的计算资源。在本篇文章中,我们将深入分析一个多线程示例,并探讨其核心概念和技术细节...

    Linux下的多线程编程

    总的来说,Linux下的多线程编程是一种强大的工具,可以提高程序效率和用户体验,但同时也需要开发者具备良好的并发控制和错误处理能力,以确保程序的稳定性和正确性。在实际开发中,应根据具体需求和系统资源合理...

    linux下C语言多线程编程实例.docx

    在Linux环境下进行C语言多线程编程,可以利用POSIX线程库pthread,它提供了创建、同步和管理线程的功能。以下将详细讲解本实例中涉及的多线程编程概念和关键技术。 首先,多线程是指在一个进程中创建多个执行线程,...

    Linux下C语言多线程,网络通信简单聊天程序

    本文将介绍如何在Linux环境下使用C语言实现一个多线程的简单聊天程序,该程序基于网络通信,能够实现1对N的聊天模式。主要涉及的技术包括多线程、网络编程、UNIX域协议(文件系统套接字)以及异步I/O模型的select...

    Linux下的多线程

    ### Linux下的C语言多线程知识点详解 #### 一、多线程概念及重要性 在探讨具体的编程细节之前,我们首先需要理解为什么在Linux环境下使用C语言进行多线程编程是如此的重要。 1. **多线程的概念:** - 多线程是指...

Global site tag (gtag.js) - Google Analytics