相关疑难解决方法(0)

进程和线程有什么区别?

进程和线程之间的技术差异是什么?

我感觉像'过程'这样的词被过度使用,还有硬件和软件线程.如Erlang这样的语言轻量级进程怎么样?是否有明确的理由使用一个术语而不是另一个术语?

multithreading process

1513
推荐指数
27
解决办法
111万
查看次数

线程之间共享哪些资源?

最近,我在面试中被问到一个问题,即流程和线程之间的区别.真的,我不知道答案.我想了一会儿,给了一个非常奇怪的答案.

线程共享相同的内存,而进程则没有.在回答这个问题之后,面试官给了我一个邪恶的微笑,并向我解释了以下问题:

:你知道程序划分的部分吗?

我的回答:是的(认为这是一个简单的)堆栈,数据,代码,堆

问:那么,告诉我:线程共享哪些段?

我无法回答这个问题并最终说出了所有这些.

请问,任何人都可以为流程和线程之间的差异提供正确和令人印象深刻的答案吗?

multithreading operating-system process

239
推荐指数
9
解决办法
14万
查看次数

线程和进程

什么是线程的最佳定义以及什么是进程?如果我调用一个函数,我怎么知道一个线程正在调用它或一个进程(或者我不理解它?).这是一个多核系统(四核).

multithreading process

4
推荐指数
1
解决办法
3240
查看次数

Linux时分处理还是线程

一位教授曾在课堂上告诉我们,Windows,Linux,OS X和UNIX可以在线程而不是进程上扩展,因此即使在单个处理器上,线程也可能使您的应用程序受益,因为您的应用程序将在CPU上获得更多时间.

我尝试在我的机器上使用以下代码(只有一个CPU).

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

pthread_t xs[10];

void *nop(void *ptr) {
    unsigned long n = 1UL << 30UL;
    while(n--);
    return NULL;
}

void test_one() {

    size_t len = (sizeof xs) / (sizeof *xs);
    while(len--)
        if(pthread_create(xs+len, NULL, nop, NULL))
            exit(EXIT_FAILURE);

    len = (sizeof xs) / (sizeof *xs);
    while(len--)
        if(pthread_join(xs[len], NULL))
            exit(EXIT_FAILURE);

}

void test_two() {

    size_t len = (sizeof xs) / (sizeof *xs);
    while(len--) nop(NULL);

}

int main(int argc, char *argv[]) {

    test_one();
//  test_two();
    printf("done\n");
    return …
Run Code Online (Sandbox Code Playgroud)

linux performance multithreading scheduling

2
推荐指数
1
解决办法
1391
查看次数