多线程之数据同步

多线程之数据同步

   想了解一下多线程就上网查资料,发现有现成的函数可以直接创建线程。即:

 uintptr_t _beginthread(    void * start_address )(  void   *  ),   unsigned stack_size,    void   * arglist   ); 

     返回值:

  假如成功,函数将返回一个处理信息对这个新创建的线程。如果失败_beginthread将返回-1。

  start_address

  新线程的起始地址 ,指向新线程调用的函数的起始地址

  stack_size

  新线程的堆栈大小,可以为0

  arglist

  传递给线程的参数列表,无参数是为NULL

  所在库文件:

  #include <process.h
 
下面是一个创建多线程数据同步的一个实例:

#include < windows.h >
#include
< process.h >
#include
< stdio.h >

unsigned 
int  value  =   0 ;

void  print( void   * argv)
{
    
while(1)
    
{
        printf(
"&value = %x, value = %d\n",&value,value);
        value
++;
        Sleep(
1000);
    }

}


int  main()
{
    _beginthread(print,
0,NULL);
    _beginthread(print,
0,NULL);

    
while(1)
        Sleep(
0);
    
    
return 1;
}

关于'_beginthread' : undeclared identifier的解决方法:
Project-->Settings-->C/C ,在Category下拉列表里选择Code Generation,会看到Use run-time library下拉列表,如果你当前是debug模式,选择Debug Multithreaded,如果选择Multithreaded,会出现unresolved external symbol __CrtDbgReport这种编译错误,另外不需要在Link里包含LIBCMT.LIB这个库文件


 

你可能感兴趣的:(多线程之数据同步)