zoukankan      html  css  js  c++  java
  • linux第12天 线程

    今天主要学习了共享内存,信号量的封装,还有线程.

    POSIX线程库
    与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的
    要使用这些函数库,要通过引入头文<pthread.h>
    链接这些线程函数库时要使用编译器命令的“-lpthread”选项

    pthread_create函数
    功能:创建一个新的线程,在主线程里调用
    原型
    int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
    参数
    thread:返回线程ID
    attr:设置线程的属性,attr为NULL表示使用默认属性
    start_routine:是个函数地址,线程启动后要执行的函数
    arg:传给线程启动函数的参数
    返回值:成功返回0;失败返回错误码,而不是设置全局变量errno

    pthread_exit函数
    功能:线程终止,在线程函数里调用,参数代表返回值,用于给主线程传数据,在线程函数里return也一样
    原型
    void pthread_exit(void *value_ptr);
    参数
    value_ptr:value_ptr不要指向一个局部变量, 。
    返回值:无返回值,跟进程一样,线程结束的时候无法返回到它的调用者(自身)

    pthread_join函数
    功能:等待线程结束,在主线程里调用
    原型
    int pthread_join(pthread_t thread, void **value_ptr);
    参数
    thread:线程ID
    value_ptr:它指向一个指针,后者指向线程的返回值

    void *p = NULL;

     pthread_join(tid, &p);这样调用

    返回值:成功返回0;失败返回错误码

    pthread_self函数
    功能:返回线程ID,在线程函数里调用
    原型
    pthread_t pthread_self(void);
    返回值:成功返回0

    pthread_cancel函数
    功能:取消一个执行中的线程
    原型
    int pthread_cancel(pthread_t thread);
    参数
    thread:线程ID
    返回值:成功返回0;失败返回错误码

    posix互斥锁api

    • 互斥锁机制主要包括下面的基本函数。
    • 互斥锁初始化:pthread_mutex_init()
    • 互斥锁上锁:pthread_mutex_lock()
    • 互斥锁判断上锁:pthread_mutex_trylock()
    • 互斥锁解锁:pthread_mutex_unlock()
    • 消除互斥锁:pthread_mutex_destroy()

    创建一个锁

    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

    pthread_mutex_init(&mutex );

    临界区,同时只有一个线程能在里面运行

    pthread_mutex_unlock(&mutex);

  • 相关阅读:
    最原始不用代理服务器的设置
    实现开启和关闭android移动网络(转)
    Android快捷键
    如何终止java线程
    电脑上安装的android虚拟机,能进行基站定位和GPS定位吗?要怎么做才能定位?(转)
    C语言标量类型(转)
    Android种 adb是什么(转)
    ☆☆在Eclipse中编译NDK的so文件(普通安卓项目转换为NDK项目的设定)
    androidSDK也要配置环境变量(转)
    Android控件系列之RadioButton&RadioGroup(转)
  • 原文地址:https://www.cnblogs.com/c-slmax/p/5281301.html
Copyright © 2011-2022 走看看