• fortran90编译器 > 共享存储器编程-108
  • 共享存储器编程-108

    免费下载 下载该文档 文档格式:PDF   更新时间:2009-04-09   下载次数:0   点击次数:2
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:pdf
    文档作者:wf
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    2006年4月 共享存储编程 8/108
    Pthreads线程模型
    POSIX1003.4a小组研究多线程编程标准. 当标准完成后,大多数支 持多线程的系统都支持POSIX接口.很好的改善了多线程编程的可移 植性. IEEE Portable Operating System Interface, POSIX, 1003.1-1995标准:POSIX线程模型:pthreads.
    2006年4月
    共享存储编程
    9/108
    线程管理(Pthread为例)
    创建:pthread_create 终止:pthread_exit 汇合:pthread_join 分离:pthread_detach 线程属性初始化:pthread_attr_init 唯一执行:pthread_once
    2006年4月
    共享存储编程
    10/108
    同步对象
    在共享存储多处理器并行机上,线程通过全局变量通信, 对于全局变量的操作必须进行同步. pthread提供两个线程同步原语 : 互斥和条件变量.
    2006年4月
    共享存储编程
    11/108
    互斥锁函数
    函数 Mutex_init() Mutext_lock() Mutex_trylock() Mutex_unlock() Mutex_destroy() 操作 初始化一个互斥锁 阻塞式加锁操作 非阻塞式加锁操作 解锁 解除互斥状态
    2006年4月
    共享存储编程
    12/108
    条件变量的函数
    函数 操作
    pthread_cond_init() 初始化条件变量 pthread_cond_wait() 阻塞直至条件为真 pthread_cond_signal() 强制条件为真,解除等待条件的线程的阻塞 pthread_cond_timedwait() 阻塞直到指定条件为真或timeout pthread_cond_broadcast() 解除所有等待条件的线程的阻塞 pthread_cond _destroy() 销毁条件变量
    2006年4月
    共享存储编程
    13/108
    Hello World(1)
    #include #include "stdio.h" void *worker(); main() {
    pthread_t thread; pthread_create(&thread,NULL,worker,NULL); pthread_join(thread,NULL);
    } void *worker() { printf("Hello World!\n"); }
    编译命令 编译命令 gcc hello.c –lpthread gcc hello.c –lpthread 运行结果 运行结果 Hello World! Hello World!
    共享存储编程 14/108
    2006年4月
    pthread_t 线程数据类型 pthread_create(&thread,NULL,worker,NULL); 函数pthread_create()用于创建一新的线程,新线程一旦建立便进入运 行状态 参数: 线程指针或句柄 线程属性变量,属性参数:默认为NULL. 属性对象一旦建立可以用于 创建多个具有共同属性的线程,线程创建后,可删除属性对象. 线程要执行的函数 传入该执行函数的一个参数,无则NULL.可以是任意类型 线程的终止 线程函数正常终止返回; 自调用pthear_exit()函数; 线程被取消; 线程接收到中止的信号; 当主进程执行exit()后,进程及其全部线程全部终止.
    2006年4月 共享存储编程 15/108
    pthread_join(pthread_t wait_for,void** status); 等待直到线程结束; 执行该函数的线程发生阻塞,直到由wait_for指定的线程终止; 等与被等的两线程必须是同一进程内部的线程(而且不是分离线 程); 返回值 0 成功返回 ESRCH 参数wait_for指定的线程不存在或是一分离线 程; EINVAL 线程参数无效; EDEADLK 等待自身结束. 不能有两个线程同时等待同一个线程的结束, 否则其中一个线程 正常返回,另外一个返回ESRCH错误.
    2006年4月 共享存储编程 16/108
    Hello World(2)

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • fortran90编译器下载  fortran编译器  win7fortran编译器  fortran6.6编译器下载  visualfortran编译器  fortran编译器下载  abaqusfortran编译器  安卓fortran编译器  fortran2003编译器