Multithreading 分析引发线程的程序模型

Multithreading 分析引发线程的程序模型,multithreading,parallel-processing,models,Multithreading,Parallel Processing,Models,线程是程序流中的单个控制流。它归纳了哪些编程模型,这些模型可能有哪些优点和缺点?(OpenMP、MPI、PThread、Cuda是导致线程的变量吗?每个程序模型的优缺点是什么?)谢谢你你不能既初始化变量又声明它为外部变量。它们是两种不同的东西 声明全局变量时,可以对其进行初始化: // trace_logger.c int inst_cout= 0; 当全局变量可能被其他模块使用时,您可以将其命名为.h文件(或直接在其他c/cpp源文件中定义),其他模块可以包括: // trace_logge

线程是程序流中的单个控制流。它归纳了哪些编程模型,这些模型可能有哪些优点和缺点?(OpenMP、MPI、PThread、Cuda是导致线程的变量吗?每个程序模型的优缺点是什么?)谢谢你

你不能既初始化变量又声明它为
外部变量。它们是两种不同的东西

声明全局变量时,可以对其进行初始化:

// trace_logger.c
int inst_cout= 0;
当全局变量可能被其他模块使用时,您可以将其命名为.h文件(或直接在其他c/cpp源文件中定义),其他模块可以包括:

// trace_logger.h
extern int int_cout;
如果您需要一个全局变量,但不想与其他模块共享,则可以将其声明为:

// trace_logger.c
static int counter= 0;

不能同时初始化变量和将其声明为
extern
。它们是两种不同的东西

声明全局变量时,可以对其进行初始化:

// trace_logger.c
int inst_cout= 0;
当全局变量可能被其他模块使用时,您可以将其命名为.h文件(或直接在其他c/cpp源文件中定义),其他模块可以包括:

// trace_logger.h
extern int int_cout;
如果您需要一个全局变量,但不想与其他模块共享,则可以将其声明为:

// trace_logger.c
static int counter= 0;

你看到了什么错误?你看到了什么错误?