Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言如何为特定任务编写类似Java的多线程?它可以作为目标c来完成吗?_Java_C_Linux_Multithreading - Fatal编程技术网

C语言如何为特定任务编写类似Java的多线程?它可以作为目标c来完成吗?

C语言如何为特定任务编写类似Java的多线程?它可以作为目标c来完成吗?,java,c,linux,multithreading,Java,C,Linux,Multithreading,我们如何创建多线程或进程?跨平台使用C语言?并在需要时关闭线程。编写一次并部署Linux/Windows/Mac/Android/MeeGo等平台 java示例:runnable=new Mytest();线程=新线程(可运行) 跟进: 步骤1:vim omp_hello.c() 完成了。它起作用了 对于C语言,您可以使用,但对于Crooss平台开发,您需要解决每个操作系统的具体问题。对于C语言,您可以使用,但对于Crooss平台开发,解决每个操作系统的具体问题取决于您。在C语言中没有线程的概念

我们如何创建多线程或进程?跨平台使用C语言?并在需要时关闭线程。编写一次并部署Linux/Windows/Mac/Android/MeeGo等平台

java示例:runnable=new Mytest();线程=新线程(可运行)

跟进:

步骤1:vim omp_hello.c()


完成了。它起作用了

线程在C和C++中纯粹是一个库问题,具体来说是因为它们在每个平台上都有不同的实现。在C++中,你会想使用-----它的跨平台,易于使用,而且非常坚固。我不知道有没有类似的C库


线程在C和C++中纯粹是一个库问题,具体来说是因为它们在每个平台上都有不同的实现。p> 对于C语言,您可以使用,但对于Crooss平台开发,您需要解决每个操作系统的具体问题。

对于C语言,您可以使用,但对于Crooss平台开发,解决每个操作系统的具体问题取决于您。

在C语言中没有线程的概念。大多数平台都有自己特定的线程库或API(显然有些平台根本不支持线程)


但是,诸如exist之类的第三方库在某种程度上提供了独立于平台的线程。

在C语言中没有线程的概念。大多数平台都有自己特定的线程库或API(显然有些平台根本不支持线程)

但是,在某种程度上,诸如exist之类的第三方库提供了独立于平台的线程。

wxWidget是多平台的(Linux/Windows/Mac上的C++),并且有其特殊的线程类:wxThread(多平台)。顺便说一下,GUI也是多平台的。 我不知道如何使用不同的语言(Android是java,C++ C++)??< /p> < p> WxWIDGET是多平台(Linux上的C/Windows/Mac),并有特殊的线程类:WXTo线(多平台)。顺便说一下,GUI也是多平台的。
我不知道如何使用不同的语言(Android是java,你想要C++),你不能在Android上运行C……AYAIK,你不能在Android上运行C…谢谢。但是用C++编写我最好用D语言来编写。我只需要原生C线程。谢谢。但是用C++编写我最好用D语言来编写。我只需要NATE-C线程。谢谢,不是跨平台的ALE:(谢谢,不是跨平台的唉:(任何C++的,我更喜欢用D语言。任何C++,我更喜欢用D语言。
Step 1:
    runnable = new Mytest();
    thread = new Thread(runnable);

Step 2:

public class Mytest implements Runnable
{
  private static volatile boolean running = true
  public void run()
  {
    while(running) 
    { // do stuff }
  }
  public void start() { running = true; }
  public void stop()  { running = false;}
}
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[]) 
{
  int nthreads, tid;
  #pragma omp parallel private(nthreads, tid)
  {

    /* Obtain thread number */
    tid = omp_get_thread_num();
    printf("Hello World from thread = %d\n", tid);

    /* Only master thread does this */
    if (tid == 0) 
    {
      nthreads = omp_get_num_threads();
      printf("Number of threads = %d\n", nthreads);
    }

  }  /* All threads join master thread and disband */

}
Hello World from thread = 0 
Number of threads = 4
Hello World from thread = 3
Hello World from thread = 1
Hello World from thread = 2