`
jamesfork
  • 浏览: 32759 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

多线程编程API

阅读更多
编译模式:sco环境下,在cc编译器时需要使用libgthreads.so


1 创建线程:
  int pthread_create(pthread_t *__restrict __thread,
  __const pthread_attr_t *__restrict __attr,
                           void *(*__start_routine) (void *),
                           void *__restrict __arg) __THROW);
  参数1:__restrict __thread 创建成功的线程句柄
  参数2:__restrict __attr 为创建的线程提供的一些环境设置
  参数3:线程创建后执行的函数指针
  参数4:传递给线程函数的变量指针
 
  返回值为非零,执行失败
 
2 合并线程:pthread_join(pthread_t __th, void **__thread_return)
  参数1:__th 要销毁的线程句柄
  参数2:返回的线程执行值
  返回值为非零,执行失败
  说明:清理线程不一定要由创建该线程的线程来执行,任何线程都是平等的,任何线程都可以清理别的线程
 
3 对线程间共享资源的保护
  锁的创建方式:
  对于静态的共享资源,使用静态锁
    使用 :pthread_mutex_t mymutex=PTHREAD_MUTEX_INITIALIZER;
    创建一个静态锁。
               
    对于动态分配的资源,使用动态锁
     int pthread_mutex_init( pthread_mutex_t *mymutex, const pthread_mutexattr_t *attr)
     参数1:锁的句柄(由函数返回)
     参数2:动态分配资源的地址
    
  加锁函数:
  int pthread_mutex_lock(pthread_mutex_t *__mutex)
    int pthread_mutex_trylock(pthread_mutex_t *__mutex)
  解锁函数:
    int pthread_mutex_unlock(pthread_mutex_t *__mutex);

4 线程间信号的传递
  1 条件变量
    pthread_cond_t mycond;
    条件变量初始化:
    pthread_cond_init(pthread_cond_t *__restrict __cond,
                              __const pthread_condattr_t *__restrict
                              __cond_attr)
    参数1:条件变量指针
    参数2:锁变量指针
    释放条件变量:
    int pthread_cond_destroy (pthread_cond_t *__cond)
    参数1:条件变量指针
2  唤醒等待条件变量的线程(所有线程)
    int pthread_cond_broadcast (pthread_cond_t *__cond)
参数1:条件变量指针
3  唤醒第一个正在睡眠的线程
int pthread_cond_signal(pthread_cond_t *__cond)

4  休眠线程,等待唤醒
    int pthread_cond_wait(pthread_cond_t *__cond,pthread_mutex_t *__mutex);
                 
分享到:
评论

相关推荐

    多线程编程基础 windows多线程 全面讲解

    #### 三、Windows多线程编程API Windows操作系统提供了丰富的API接口用于多线程编程,包括但不限于: - **CreateThread()**:创建一个新的线程。 - **WaitForSingleObject()**:等待一个特定的对象达到某种状态。 ...

    Windows多线程编程技术与实例(C++)(PDF)

    接着,书中详细讲解了C++中用于多线程编程的API,如CreateThread、_beginthreadex等,以及如何使用C++11及更新的标准库中的std::thread。这些API的使用方法和注意事项是多线程编程实践中的重要知识,书中会有具体的...

    JAVA多线程编程技术PDF

    这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...

    java多线程编程 新api

    java 多线程编程 很实用 来自网上 1)包括新api介绍 2)新线程接口 Callable 和 Future 的讲解 3)线程同步知识

    MFC多线程编程

    MFC库是Visual C++提供的一种面向对象的类库,它简化了Windows API的使用,包括多线程编程。多线程在现代软件开发中扮演着重要角色,能够提高程序的响应速度和效率,尤其是在执行长时间运算或异步任务时。 **一、单...

    Linux多线程编程手册

    Linux多线程编程手册详细介绍了两种线程API:Solaris线程API和pthread API。 Solaris线程API是Sun Microsystems开发的一种多线程库,它为Solaris操作系统提供了创建、管理和同步线程的功能。pthread API,又称POSIX...

    多线程编程(完整版)

    在Windows环境下,Win32 API提供了对多线程编程的广泛支持。`CreateThread`函数是创建新线程的关键,它接收参数如线程安全属性、堆栈大小、线程入口点函数和传递给线程的参数,创建成功后返回线程句柄。线程的执行...

    Delphi 多线程编程

    Delphi提供了多种方式来支持多线程编程,包括使用API(Application Programming Interface)和其他高级抽象类如`TThread`等。 #### 二、操作系统与多线程 现代操作系统如Windows 98/NT/2000/XP等均支持多线程技术...

    sun 多线程编程指南

    Sun Microsystems公司的《Sun多线程编程指南》是一本经典的多线程编程书籍,详细阐述了多线程编程的基础理论、API接口使用以及相关的编程技巧。 在标题《Sun多线程编程指南》中,关键词“Sun”指的是Sun ...

    C#多线程编程实战 源代码

    本书是一本通俗易懂的C#多线程编程指南,通过70多个容易理解的示例,循序渐进地讲解C#5.0中的异步及并发编程,引导读者了解Windows下C#多线程编程的多样性。 通过阅读本书,你将学到: 使用原始线程、异步线程,...

    Windows平台下的多线程编程

    **Win32 API**(Windows应用程序接口)是Microsoft Windows操作系统的核心编程接口,为开发者提供了丰富的函数集合,其中包含了用于多线程编程的API。通过调用这些API,开发者可以创建、控制和管理线程,从而实现多...

    unix/linux多线程编程指南(sun技术文档)

    #### 二、多线程编程API - **线程创建:** 使用`pthread_create()`函数创建新线程。该函数需要指定新线程的入口函数、参数等。 - **线程同步:** - **互斥锁(Mutex):** 通过`pthread_mutex_lock()`和`pthread_...

    多线程编程指南

    多线程编程是一种让多个代码路径在同一个程序中同时运行的技术,它允许多个执行流(线程)并发执行。在iOS开发中,多线程编程可以帮助开发者充分利用多核处理器的性能,提高应用程序的响应性和运行效率。然而,多...

    VC++多线程编程实例

    本资源包包含了十多个关于VC++多线程编程的实例,旨在帮助开发者深入理解和应用多线程技术。 在Windows操作系统中,多线程是通过创建和管理线程对象来实现的,这些线程与进程内的其他线程共享同一内存空间。VC++...

    《Windows多线程编程技术与实例》-郝文化-书和源码

    本书通过众多实例介绍了如何实现Windows下的多线程编程,既重点介绍了Win32API下的多线程编程和MFC下的多线程编程,又介绍了多线程机制在网络编程、图形编程和数据库中的应用。本书每一章都从简单的多线程实例出发...

Global site tag (gtag.js) - Google Analytics