在Linux C中使用相同代码的多个线程处理大数据

发布于 2024-11-15 17:35:39 字数 241 浏览 0 评论 0原文

是否可以创建具有相同功能的多个线程来处理小块中的大数组?

我正在尝试在Linux C中执行此操作,假设我已经read(),它正在从串行读取数据到数组中,当数组已满时,它被传递到stable()进行处理,同时它被处理,read应该读取新数据,因为 stable() 需要很长时间来处理旧数据,因此 stable() 新创建的线程应该处理数组中可用的新数据。

问题是我很困惑,我可以在 Linux C 中创建两个 stable() 线程吗?

can multiple threads of same function be created to process large arrays in small blocks?

i am trying to do it in Linux C, assume i have read() it is reading data from serial into array, when array is full it is passed for processing to stable(), meanwhile it is processed, read should be reading new data, because stable() is taking long to process old data, so newly created thread of stable() should be processing new data available in array.

problem is i am confused, can i create two threads of stable() in Linux C?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゞ记忆︶ㄣ 2024-11-22 17:35:39

使用 pthreads API 创建的每个线程都指定一个应与标准签名匹配的入口点:

void *entry(void *)
{
   return 0;
}

调用该入口点后,您可以调用任何您想要的内容,包括上面引用的 stable() 例程。但是,您需要小心,以确保 stable() 及其调用的任何内容都是线程安全的。

Each thread created using the pthreads API specifies an entry point that should match the standard signature:

void *entry(void *)
{
   return 0;
}

Once that entry point has been called, you can invoke anything that you want including the stable() routine that you referenced above. You will need to be careful, however, to ensure that stable() and anything that it calls is thread safe.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文