编译模式: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多线程编程API Windows操作系统提供了丰富的API接口用于多线程编程,包括但不限于: - **CreateThread()**:创建一个新的线程。 - **WaitForSingleObject()**:等待一个特定的对象达到某种状态。 ...
接着,书中详细讲解了C++中用于多线程编程的API,如CreateThread、_beginthreadex等,以及如何使用C++11及更新的标准库中的std::thread。这些API的使用方法和注意事项是多线程编程实践中的重要知识,书中会有具体的...
这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...
java 多线程编程 很实用 来自网上 1)包括新api介绍 2)新线程接口 Callable 和 Future 的讲解 3)线程同步知识
MFC库是Visual C++提供的一种面向对象的类库,它简化了Windows API的使用,包括多线程编程。多线程在现代软件开发中扮演着重要角色,能够提高程序的响应速度和效率,尤其是在执行长时间运算或异步任务时。 **一、单...
Linux多线程编程手册详细介绍了两种线程API:Solaris线程API和pthread API。 Solaris线程API是Sun Microsystems开发的一种多线程库,它为Solaris操作系统提供了创建、管理和同步线程的功能。pthread API,又称POSIX...
在Windows环境下,Win32 API提供了对多线程编程的广泛支持。`CreateThread`函数是创建新线程的关键,它接收参数如线程安全属性、堆栈大小、线程入口点函数和传递给线程的参数,创建成功后返回线程句柄。线程的执行...
Delphi提供了多种方式来支持多线程编程,包括使用API(Application Programming Interface)和其他高级抽象类如`TThread`等。 #### 二、操作系统与多线程 现代操作系统如Windows 98/NT/2000/XP等均支持多线程技术...
Sun Microsystems公司的《Sun多线程编程指南》是一本经典的多线程编程书籍,详细阐述了多线程编程的基础理论、API接口使用以及相关的编程技巧。 在标题《Sun多线程编程指南》中,关键词“Sun”指的是Sun ...
本书是一本通俗易懂的C#多线程编程指南,通过70多个容易理解的示例,循序渐进地讲解C#5.0中的异步及并发编程,引导读者了解Windows下C#多线程编程的多样性。 通过阅读本书,你将学到: 使用原始线程、异步线程,...
**Win32 API**(Windows应用程序接口)是Microsoft Windows操作系统的核心编程接口,为开发者提供了丰富的函数集合,其中包含了用于多线程编程的API。通过调用这些API,开发者可以创建、控制和管理线程,从而实现多...
#### 二、多线程编程API - **线程创建:** 使用`pthread_create()`函数创建新线程。该函数需要指定新线程的入口函数、参数等。 - **线程同步:** - **互斥锁(Mutex):** 通过`pthread_mutex_lock()`和`pthread_...
多线程编程是一种让多个代码路径在同一个程序中同时运行的技术,它允许多个执行流(线程)并发执行。在iOS开发中,多线程编程可以帮助开发者充分利用多核处理器的性能,提高应用程序的响应性和运行效率。然而,多...
本资源包包含了十多个关于VC++多线程编程的实例,旨在帮助开发者深入理解和应用多线程技术。 在Windows操作系统中,多线程是通过创建和管理线程对象来实现的,这些线程与进程内的其他线程共享同一内存空间。VC++...
本书通过众多实例介绍了如何实现Windows下的多线程编程,既重点介绍了Win32API下的多线程编程和MFC下的多线程编程,又介绍了多线程机制在网络编程、图形编程和数据库中的应用。本书每一章都从简单的多线程实例出发...