zoukankan      html  css  js  c++  java
  • linux编程----线程编程

    概述:

    1:程是调度的最小单位;进程是资源分配的最小单位。

    2:进程中的线程是共享全局变量以及内存的。

    3:共享:指令,除去私有数据,signal处理方式及其例程,运行环境

    来源:http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html

    函数介绍:

    image

    说明:

    用于获取本线程的ID号----ID就是一个长无符号整型

    ------------------------------分割线--------------------------------

    image

    说明:

    用于判断线程ID是否相等

    ------------------------------分割线--------------------------------

    image

    说明:

    创建线程,其中的线程函数就是线程的入口处。创建后线程就会启动了。

    ------------------------------分割线--------------------------------

    image

    说明:

    线程退出函数

    ------------------------------分割线--------------------------------

    image

    说明:

    等待线程th执行完。。

    ------------------------------分割线--------------------------------

    image

    说明:

    pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);通过此函数设置可以被其他线程取消
    通过上述函数可以向该线程提出取消线程的请求。

    同步方式:

    互斥锁函数

    互斥锁初始化:pthread_mutex_init()

    互斥锁上锁:pthread_mutex_lock()

    互斥锁判断上锁:pthread_mutex_trylock()

    互斥锁解锁:pthread_mutex_unlock()

    消除互斥锁:pthread_mutex_destroy()

    信号量函数

    sem_init() 创建一个信号量,并初始化它

    sem_wait()和sem_trywait(): P操作,在信号量大于零时将信号量的值减一

    •区别: 若信号量小于零时,sem_wait()将会阻塞线程,sem_trywait()则会立即返回

    sem_post(): V操作,将信号量的值加一同时发出信号来唤醒等待的线程

    sem_getvalue(): 得到信号量的值

    sem_destroy(): 删除信号量

    条件变量函数:

    参看:http://blog.chinaunix.net/uid-21411227-id-1826890.html

    初始化条件变量pthread_cond_init

    阻塞在条件变量上pthread_cond_wait

    解除在条件变量上的阻塞pthread_cond_signal

    阻塞直到指定时间pthread_cond_timedwait

    释放阻塞的所有线程pthread_cond_broadcast

    释放条件变量pthread_cond_ destroy

  • 相关阅读:
    Scrum Meeting Alpha
    Scrum Meeting Alpha
    Scrum Meeting Alpha
    你连自律都做不到,还奢谈什么自由?
    改变这个世界
    这世界没有人能随随便便成功
    “沙堆实验”
    解读那些年我们见过的“富人思维”
    心存希望,面朝大海
    闻香识女人 演讲台词
  • 原文地址:https://www.cnblogs.com/miner007/p/3978557.html
Copyright © 2011-2022 走看看