多线程编程

来源:互联网 发布:百度seo排位 编辑:程序博客网 时间:2024/04/26 03:44

进程内的线程共享全局变量和内存.此时就要考虑共享变量的互斥问题. 

使用线程时,需要加入<pthread.h>头文件.且编译时需链接pthread库.

创建线程需调用pthread_create函数.

int pthread_create(pthread_t *thread,const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg).

参数说明:1.thread 线程ID.  2.attr属性脱离,可汇合,调度策略.该参数可以为NULL.  3.start_routine 线程处理函数.  4.arg 给线程例程传参数.

以下是个多线程处理的测试例子。

 

#include <stdio.h>
#include 
<pthread.h>

int iCur=0;        /*当前的线程索引*/
int iArr[100];     /*线程使用的全局的变量*/
thread_t thr[
9];
 
/*线程处理函数*/
void  f_thread(void *p)
{/*p传进来的是线程索引*/
    
int iTmp;

    iTmp
=(int)(*p);

    iArr[iTmp]
=100;
}


int main()
{
  
int i;

  
for (i=0;i<10;i++)
  
{
     pthread_create(thr[i],NULL,(
void*)f_thread,(void*)i);
  }


    
return 1;
}