`
yingyingol
  • 浏览: 787102 次
文章分类
社区版块
存档分类
最新评论

多线程编程(一):线程创建和退出

 
阅读更多

一、引言

二、实例
以下实例中创建了2个线程,其中第一个线程是在程序运行到中途时调用pthread_exit函数退出,第二个正常退出。在主线程中,收集这两个线程的退出信息,并释放资源。从实例可以看出,这两个线程是并发运行的。

/*thread.c*/
#include
#include

void thread1(void)
{
int i=0;
for(i=0;i<6;i++)
{
printf("This is a pthread1.\n");
if(i==2)
pthread_exit(0); //线程退出
sleep(3); //线程1睡眠,将CPU让给其它线程
}
}

void thread2(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread2.\n");
pthread_exit(0); //打印完以上三条语句后,直接退出
}

int main(void)
{
pthread_t id1,id2;
int i,ret;
ret=pthread_create(&id1,NULL,(void *) thread1,NULL); //创建线程1,线程2
if(ret!=0)
{
printf ("Create pthread error!\n");
exit (1);
}
ret=pthread_create(&id2,NULL,(void *) thread2,NULL);
if(ret!=0)
{
printf ("Create pthread error!\n");
exit (1);
}
pthread_join(id1,NULL); //等待线程结束
pthread_join(id2,NULL);
exit (0);
}

运行结果:
[root@localhost net]# ./thread
This is a pthread1.
This is a pthread2.
This is a pthread2.
This is a pthread2.
This is a pthread1.
This is a pthread1.

分享到:
评论

相关推荐

    Linux系统下的多线程编程入门.pdf

    在Linux系统下进行多线程编程是开发高效并发应用程序的关键技术之一。本文将深入探讨Linux环境中的多线程概念、创建与管理线程的方法、线程同步与通信机制,以及多线程编程中可能遇到的问题和解决策略。 一、多线程...

    linux多线程编程.pdf

    Linux多线程编程是操作系统中并发程序设计的一个重要领域,它允许开发者在同一程序中创建多个线程,以实现并行执行,从而提高程序的执行效率和响应能力。Linux下的多线程编程通常基于POSIX线程(pthread)库来实现,...

    嵌入式软件开发技术:第5章 嵌入式Linux多线程编程.ppt

    嵌入式Linux多线程编程是嵌入式系统开发中的一种重要技术,能够提高系统的效率和响应速度。本章节将详细介绍嵌入式Linux多线程编程的基本概念、线程的创建、同步和互斥、线程属性、多线程实验等方面的知识点。 1. ...

    Windows多线程编程

    多线程编程是一种在单个程序中创建多个执行路径的技术,这使得程序能够同时执行多个任务,极大地提高了程序的执行效率和响应速度。在Windows操作系统下,多线程编程主要依赖于Windows API提供的相关函数来实现。 ##...

    多线程编程安全退出

    多核计算中多线程的退出算法是多线程编程中的一大难题。当存在一些常驻的线程访问的共享数据时,退出时必须先结束这些常驻线程才能对共享资料进行释放操作。否则,先释放这些共享资源,后面的常驻线程访问这些已经...

    多线程编程指南

    线程同步是多线程编程中最关键的部分之一,用于防止数据竞争和死锁等问题。 ##### 4.1 同步工具 本节介绍了常用的同步工具及其使用方法: - **4.1.1 原子操作**:提供原子读写操作以简化同步逻辑。 - **4.1.2 内存...

    关于MFC多线程编程的基本介绍

    MFC通过提供CWinThread类来支持多线程编程,它封装了Windows API的线程创建和管理功能。 创建MFC多线程主要涉及以下几个步骤: 1. **继承CWinThread**:首先,你需要创建一个新的C++类,并让它继承自CWinThread。...

    Linux多线程编程手册

    创建线程是多线程编程的第一步,线程的创建包括指定函数和参数以及分配栈空间等。等待线程终止是同步线程活动的一种方式,允许一个线程等待另一个线程结束。线程的分离属性可以指定线程退出时是否自动释放其资源,而...

    多线程编程指南(sun公司出品)

    在《多线程编程指南》中,Sun Microsystems公司提供了详细的多线程编程理论和实践指导,旨在帮助开发者更好地理解和运用多线程编程。 - **定义多线程术语**:文档首先定义了多线程编程中的关键概念,如线程、进程、...

    多线程编程指南PDF

    ### 多线程编程指南知识点总结 #### 一、多线程基础介绍 - **定义多线程术语**: ...通过学习这些内容,开发者可以更好地理解和掌握多线程编程的技术细节,从而编写出更加高效、稳定的多线程应用程序。

    windows环境下的多线程编程原理与应用

    在Windows环境下进行多线程编程是一项复杂而关键的技术,它涉及到操作系统如何管理和调度并发执行的任务。多线程允许一个应用程序同时执行多个独立的代码段,从而提高程序的响应性和效率,尤其是在现代多核处理器...

    多线程编程资料汇总

    在IT领域,多线程编程是一项关键技能,尤其在服务器端和实时系统中,它能够充分利用多核处理器的计算能力,提高程序的并发性能。本文将深入探讨标题和描述中提及的多线程编程相关知识点,并针对提供的三个文档进行...

    VC多线程编程概述.pdf

    Microsoft Visual C++(简称VC)作为一款强大的开发工具,提供了丰富的多线程编程支持。本文将详细介绍VC中多线程编程的基础概念、重要性以及Win32 API中关键的多线程函数。 #### 二、多线程编程的重要性 多线程...

    Linux多线程编程.doc

    在Linux系统中,多线程编程是一种有效提升程序并发性和执行效率的方法。本文将深入探讨Linux环境下如何进行多线程编程,以及相关的基础知识和技术要点。 首先,Linux中的线程被称为轻量级进程(Lightweight Process...

    多线程编程10例

    在计算机科学领域,多线程编程是一种常见的技术手段,用于提高程序的执行效率和响应能力。通过本篇文章,我们将探讨多线程编程的基本概念及其在实际开发中的应用。 #### 二、问题背景与解决方案 假设我们正在开发一...

    .NET多线程编程.NET多线程编程

    .NET框架提供了一个线程池,它管理一组可重用的线程,用于执行短时任务,以减少线程创建和销毁的开销。`ThreadPool`类提供了各种方法,如`QueueUserWorkItem`,用于将工作项加入线程池。 5. **异步编程** 异步...

    MFC多线程编程源代码和说明文档

    本资料包包含的是关于MFC实现多线程编程的源代码和相关说明文档,可以帮助开发者深入理解和应用这一技术。 在MFC中,多线程的创建主要通过`CWinThread`类进行。`CWinThread`是MFC中的一个核心类,它代表了一个线程...

Global site tag (gtag.js) - Google Analytics