pthreads

    0热度

    3回答

    我已经使用pthread库在c中编写了多客户端服务器。当每个客户端尝试连接到服务器时,每个客户端都作为单独的线程运行,并使用handle_client函数处理每个客户端。 我想知道为什么我需要在堆中声明connfd作为变量?如果它被声明为局部变量可能会发生什么问题? 这是代码,以使每个线程(在main()函数) int* connfd; pthread_t thread_id; int cli

    0热度

    2回答

    我看到的所有openmp教程示例都是为for循环创建线程。但我需要为普通的语句组创建线程,这些语句可能会聚集到函数中。例如,像下面这样: #include <stdio.h> #include <omp.h> int A() { printf("in A:%d\n", omp_get_thread_num()); } int B() { printf("in B:%d\n", omp_get

    2热度

    1回答

    据我了解,那么pthread_cond_timedwait是采取当前的时间,然后计算时的绝对时间,如果条件没有信号那么pthread_cond_timedwait应退出使用。 是否有一种简单的方法可以使用此函数来可靠地执行周期性任务(问题是在当前时间点和调用pthread_cond_timedwait之间的时间发生变化)? 我应该跑〜每秒周期性任务。 do { pthread_mutex

    0热度

    1回答

    我的代码: const uptr kPthreadDestructorIterations = 2; static pthread_key_t key; static bool destructor_executed; void destructor(void *arg) { uptr iter = reinterpret_cast<uptr>(arg); print

    -1热度

    1回答

    我在编译我的代码时遇到问题,它使用互斥锁(所以使用pthread锁和条件)。我试过包括头文件,用-pthread或-lpthread编译,但我仍然收到错误。帮助将不胜感激。 这是误差输出: 的函数“的pthread_mutex_lock” [-Wimplicit函数声明] 的pthread_mutex_lock(&锁)隐式声明; //锁定 ^ /tmp/cchVS47i.o:在功能getMessa

    0热度

    1回答

    我在写一个创建两个线程的程序。每个线程负责读取一个文本文件,每行一个字符。 h 0 h 0 ... 第二的格式如下:: 第一像被格式化 0 i 0 i 0 i 有时可以有后彼此多个字母,或彼此先后多个零。但是,一个确定的是,如果一个文件的一行上有一个字母,第二个文件的相应行将有一个0,反之亦然。 线程应该保持读取文件输入到全局字符数组中,直到它们达到零。此时,他们允许另一

    0热度

    1回答

    下一个代码通常打印BA,但有时它可以打印BBAA,BAAB,... ...这怎么可能得到两个A或B吧?但是,这段代码从不打印三个A或B.这两个函数(生产和消费)都运行很多线程。提前谢谢了。 int permission; void set_permission(int v) { permission = v; printf("%c", v + 'A');fflush(stdi

    0热度

    2回答

    我试图拦截在ubuntu14.04在pthread_create,代码是这样的: struct thread_param{ void * args; void *(*start_routine) (void *); }; typedef int(*P_CREATE)(pthread_t *thread, const pthread_attr_t *attr,void *

    0热度

    1回答

    最近我开始在php中学习多线程。我好奇如何螺纹类使用对象作为阵列在下面的代码 <?php $safe = new Threaded(); while (count($safe) < 10) { $safe[] = count($safe); } var_dump($safe->chunk(5)); 如果我应用相同的逻辑在一个普通的类它给出了一个致命的错误。 Fatal e

    0热度

    1回答

    我是C新手,学习信号量。我试图用pthreads,mutex和信号量来实现一种复杂的餐饮哲学家的情况。 这个想法是,一个信号量代表一个服务器,在两个表(每个4个地方,总共8个)中安排人员。每个表也由计数信号灯控制。每块板由互斥体控制以避免竞争条件。每个人都由一个线程表示。 我看不出为什么在我的代码中,同一个客户一直在吃东西,而且似乎没有增加。 代码: #include <stdio.h> #in