- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
是否有任何库/pthread 包装器/clone
允许我拥有 tfork
的参数--类似fork()
的东西, 允许您在上下文中继续执行代码,而不是指向在新线程下执行的新函数。
如果没有,有什么简单的方法自己写吗?
理想情况下,用法就像 fork 一样,但含义类似于 threadlike,举个人为的例子:
int main() {
int ival = 0;
if(tfork() == 0) {
sleep(10);
ival = 5;
_exit(); // or exit or return or whatever
} else {
while(1) {
printf("ival=%d\n", ival);
if(ival != 0) {
printf("ival changed. done.\n");
return 0;
}
sleep(1);
}
}
}
应该输出:
ival=0
ival=0
ival=0
ival=0
ival=0
ival=0
ival=0
ival=0
ival=0
ival=0
ival=5
ival changed. done.
最佳答案
你不能那样做,因为线程共享同一个地址空间。从相同的执行上下文继续(就像 fork() 那样)意味着它们的堆栈在相同的内存中。
当然两个线程需要有自己的栈,否则会出问题。
这就是为什么你需要指定一个函数来启动一个新线程——因为新线程有一个新堆栈。
关于c - C 中的 "thread fork"(理想情况下是 POSIX,但仅适用于 Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230545/
从许多帖子中我可以读到有关最大池大小的公式,它取决于 CPU 的数量 + 1。这是一个明确的解释。 但是如果应用程序定义了许多执行器或线程池执行器怎么办。然后我们还必须考虑应用程序共享相同的硬件。这对
我一直在寻找垂直 Accordion 内容 slider 。我找到了一个:http://www.marghoobsuleman.com/jQuery-common-accordion ,而且还不错。我
在 not having a whole bunch of luck 之后找到任何可充当 SNMP 代理的 .NET SNMP 库(可在 OSS 项目中使用 - 这意味着专有库已经过时),我现在正在考
目前我正在考虑: VMWare 管理程序 ESXi 中央操作系统 5.5 内存缓存 1.4.5和依赖 这就是全部。我还需要什么/任何替代品吗? 最佳答案 Memcached在linux上运行的很好,所
我是一名优秀的程序员,十分优秀!