小编Kol*_* H.的帖子

为什么 pthread_join 没有返回?

我认为 pthread_join 应该总是返回一个值,然后允许主线程在此之后处理代码。根据我过去的经验,这会奏效。但现在我被它困住了。不知何故,它只是不返回并阻塞主线程。或者它可能是执行任务的主线程。我不知道为什么。在下面的代码中,在终止客户端之前,我无法访问“Thread created2”。任何的想法?

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

    int sockfd, port;  /* listen on sock_fd, new connection on new_fd */
    struct sockaddr_in my_addr;    /* my address information */
    struct sockaddr_in their_addr; /* connector's address information */
    socklen_t sin_size;

    if(signal(SIGINT, sigintEvent) == SIG_ERR)
        printf("can't catch SIGINT!");

    /* generate the socket */
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
        perror("socket");
        exit(1);
    }

    if (argc > 1) {
        port = atoi(argv[1]);
    } else {
        port = MYPORT;
    }

    /* …
Run Code Online (Sandbox Code Playgroud)

c sockets linux multithreading pthreads

0
推荐指数
1
解决办法
3100
查看次数

标签 统计

c ×1

linux ×1

multithreading ×1

pthreads ×1

sockets ×1