C 双线程打印字符
我得写一个程序 “激活两个线程。第一个线程必须写char'a'30000 次第二个“b”25000次 我写了这个程序,但我不知道这是一个好结果。我希望当我使用C 双线程打印字符,c,pthreads,C,Pthreads,我得写一个程序 “激活两个线程。第一个线程必须写char'a'30000 次第二个“b”25000次 我写了这个程序,但我不知道这是一个好结果。我希望当我使用pthread\u join(p,NULL)时,先看到30000次a然后看到b。我的程序随机写a和b,这是好还是不好 #include<stdio.h> #include<string.h> #include<pthread.h> #include<stdlib.h> #include<
pthread\u join(p,NULL)
时,先看到30000次a然后看到b。我的程序随机写a和b,这是好还是不好
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
pthread_t f,s;
void* a(void *arg)
{
int j;
for(j=0;j<30000;j++) printf("a\n");
return NULL;
}
void* b(void *arg)
{
int u;
for(u=0;u<25000;u++) printf("b\n");
return NULL;
}
int main(void)
{
int i = 0;
int err;
err = pthread_create(&f, NULL, &a, NULL);
if (err != 0)
printf("\ncan't create thread :[%s]", strerror(err));
else
printf("\n Thread created successfully\n");
err = pthread_create(&s, NULL, &b, NULL);
if (err != 0)
printf("\ncan't create thread :[%s]", strerror(err));
else
printf("\n Thread created successfully\n");
pthread_join(f, NULL);
sleep(5);
return 0;
}
#包括
#包括
#包括
#包括
#包括
pthread_t f,s;
void*a(void*arg)
{
int j;
对于(j=0;jI不知道“好”或“坏”,但这正是我所期望的。这就是那些没有真正实现任何目标的人为示例的问题。从您发布的内容来看,您似乎已经为这个问题做了足够的工作。使用线程的全部目的是让线程同时运行。因为大多数现代系统都有多线程即使在单核机器上,在执行一个线程的所有代码之前,执行另一个线程的所有代码也会令人惊讶,特别是因为要写入的字符数足够大,足以触发系统调用(换行可能也会触发刷新)。您可能也应该pthread_join(s,NULL);
。