概述:
这次主要是使用nanomsg库实现多线程之间的通信,在我们复杂的多线程编程中可能各个线程需要共用一些信息,平常加互斥锁等等,有时候也是相当麻烦,这里是使用nanomsg库实现多线程的通信,主要这次是一对一线程双向通信和单向通信的demo。
多线程一对一双向通信demo
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <nanomsg/pair.h>
#include <nanomsg/bus.h>
#include <nanomsg/nn.h>
/*
此程序为nanomsg多线程一对一双向通信demo。
*/
//inproc 标识用于多线程通信
char *url = "inproc://sky_test";
int server_sock_init(int *sock)
{
*sock = nn_socket (AF_SP, NN_PAIR);
if (*sock < 0) {
printf("create server sock failed\r\n");
return 1;
}
if (nn_bind(*sock, url) < 0) {
printf("bind server sock failed\r\n");
return 1;
}
printf("server socket init success...\r\n");
return 0;
}
int client_sock_init(int *s