• 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

  • 相关阅读:
    LTE第一章 介绍
    一本关于 LTE 非常好的书籍
    Memcached安装卸载
    很好很实用的.net、网站系统后台模板
    MS SQL 当记录不存在时插入insert INTO not exists
    数据库存储过程缺点总结
    存储过程是罪恶
    树形数据查询示例
    安装Discuz!论坛时提示“mysqli_connect() 不支持 advice_mysqli_connect”
    sql server中将一个表中的部分数据插入到另一个表中
  • 原文地址:https://www.cnblogs.com/miner007/p/3978557.html
Copyright © 2020-2023  润新知