线程API

作者: ThalesW | 来源:发表于2020-06-25 16:39 被阅读0次

1.1线程的创建

#include <pthread.h>
int 
pthread_create(
    pthread_t *             thread,
    const pthread_attr_t *  attr,
    void*                   (*start_routine)(void*),
    void *                  arg);

参数1:指向pthread_t结构类型的指针,利用该结构与线程交互。
参数2:用于指定该参数可能具有的属性。
参数3:指示线程在哪个函数(函数名称start_routine)中运行。
参数4:传递给线程开始执行的函数的参数。

1.2线程的完成

int pthread_join(pthread_t thread, void **value_ptr);

参数1:指定要等待的线程。
参数2:得到的返回值。
线程的返回值不要返回指针,并让它指向线程调用栈上分配的东西。线程函数内的变量分配在栈中,返回后栈会释放该内存。

1.3锁

临界区需要通过锁来保护。

int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_unlock(pthread_mutex_t *mutex);
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);

如果在调用pthread_mutex_lock时没有其它线程保持有锁,线程将获取该锁并进入临界区。如果另一线程保持该锁,那么尝试获取该锁的线程将不会从该调用返回,直到获得该锁。函数三初始化互斥变量。

1.4条件变量

线程之间的交互信号。

int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
int pthread_cond_signal(pthread_cond_t *cond);

第一个函数使调用线程进入休眠状态,等待其他线程发出信号,同时会让调用者睡眠时释放锁。

相关文章

  • 2020-07-28JDK5.0之后新增的创建多线程的方式2

    新增方式二:使用线程池 线程池相关API JDK 5.0起提供了线程池相关API:ExecutorService ...

  • Java多线程-线程基础

    1.线程概念 2.线程状态 3.Java线程提供的API 4.Java Object提供的API 5.线程协作方式...

  • 线程API

    在Handler 和 AsyncTask 就已经涉及到线程概念,操作甚至并发了。有需要好好了解一下。参考《Java...

  • 线程API

    1.1线程的创建 参数1:指向pthread_t结构类型的指针,利用该结构与线程交互。参数2:用于指定该参数可能具...

  • 4.线程通信

    线程协作-JDK API JDK中对于需要多线程协作完成某一任务的场景,提供了对应API支持。多线程协作的典型场景...

  • 3、并发编程-Java线程

    并发编程 Java线程 创建和运行线程 查看线程 线程API 线程状态 创建和运行线程 方法一,直接使用new T...

  • 多线程之GCD

    线程、多线程 多线程存在的问题 为什么使用多线程? GCD GCD 的 API 介绍Dispatch QueueD...

  • java多线程学习5

    线程池 ThreadPoolExecutor 官方API解释线程池的好处: (1)通过重用线程池中的线程,来减少每...

  • 【Java并发编程实战】-----线程的中断(interrupt

    废弃的API 提到中断,就会想起 stop 这个方法但是,自己看图 不说了 线程中断API 就是返回对应线程的中断...

  • 线程的属性

    相关API 初始化和释放 设置线程属性状态 设置线程栈 线程栈大小 线程栈地址 实例

网友评论

      本文标题:线程API

      本文链接:https://www.haomeiwen.com/subject/hoqsfktx.html