因此,我有2个程序执行相同的操作,一个用C编写,另一个用Java编写。它们都创建50个线程,并等待所有线程完成,然后终止。
为了了解两个程序之间的时间差,我在Linux中使用了“ time”命令来获取执行时间。
对于C程序,总执行时间为0.020秒,而Java版本花费了0.663秒来完成。
我曾尝试寻找答案,但发现的所有文章(如这 两篇文章)都说Java实际上比C快,我认为这是胡说八道,因此,如果有人可以为我澄清一下,我将不胜感激。 。
谢谢。
这就是C代码的样子。
#include<stdio.h>
#include<pthread.h>
#include<unistd.h>
#define N 50
void* tproc(void *arg) {
printf("Thread %d\n", *((int *) arg));
return NULL;
}
int main(int argc, char * argv[]) {
int i;
int targ[N];
pthread_t tid[N];
for(i = 0; i < N; i++) {
targ[i] = i;
if(pthread_create(&(tid[i]), NULL, &tproc, &targ[i]) != 0) {
printf("Can't create thread %d\n", i);
return 1;
}
}
for(i = 0; i < N; i++) {
if(pthread_join(tid[i], NULL) != …Run Code Online (Sandbox Code Playgroud)